javascript日期和时间加入

标签 javascript datetime

我有两个日期变量分别如下

startDate 是一个 Date 实例,其值为 Tue Jul 17 2012 00:00:00 GMT+0530 (IST)

startTime 是一个 String,值为 "11:30 AM"

现在我需要的是将上述日期和时间合并为 Date

startDateTime = 2012 年 7 月 17 日星期二 11:30:00 GMT+0530 (IST)

我试过了

new Date(startDate + ""+ startDate) 但输出无效日期

也尝试了这个 post 上显示的方式.但还是不行。

最佳答案

如果 startTime 是明确定义的格式,您可以轻松解析它,然后使用 setHourssetMinutes:Live example | source

var startDateTime;
var parts = /^(\d+):(\d+) (AM|PM)$/.exec(startTime);
if (parts) {
    hours = parseInt(parts[1], 10);
    minutes = parseInt(parts[2], 10);
    if (parts[3] === "PM" && hours !== 12) {
        hours += 12;
    }
    else if (parts[3] === "AM" && hours === 12) {
        hours = 0;
    }
    if (!isNaN(hours) && !isNaN(minutes)) {
        startDateTime = new Date(startDate.getTime());
        startDateTime.setHours(hours);
        startDateTime.setMinutes(minutes);
    }
}

...或类似的东西。

请注意,关键是您说过 startDate 是一个 Date 实例。上面假设我们在 JavaScript 环境的时区内工作,而不是跨区域工作。如果您以日期 string 开头,并且该字符串指定了 JavaScript 环境时区以外的时区,然后您将通过 new 将其转换为 Date Date("Tues Jul...."),那么您必须确保调整生成的 Date 以使用环境的本地时间或 UTC;如果您将其调整为 UTC,您将使用上面的 setUTCHourssetUTCSeconds 而不是 setHourssetSeconds。同样,如果您的起点是日期字符串,并且该字符串指定的时区与上述代码运行的时区不同,这只是一个问题。 p>

关于javascript日期和时间加入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11577133/

相关文章:

javascript - 是否有用于管理事件的 "quantum state changes"的有用模式? (特别是在 JavaScript 中)

javascript - ruby rails : error when using unobtrusive JavaScript to update partial

javascript - 如何 chop 段落第一行之后的字符串

python - 仅向时间添加 n 秒(无日期)

java - 检查对象的过期日期以在后台删除

java - 如何获得上个月的确切第一个日期和时间?

javascript - react : setInterval Not working after one interval

mysql - 如何在MySQL中查找一年中的一月到七月缺少的月数

c# - 将日期从 6/05/2020 格式转换为 dd/MM/YYYY 格式

javascript - 使用 javascript 更改 css3 边框属性