JavaScript日期和时间连接
javascript date & time join
>我有两个单独的日期变量,如下所示
startDate
是一个值为 Tue Jul 17 2012 00:00:00 GMT+0530 (IST)
的Date
实例
startTime
是值为 "11:30 AM"
的String
现在我需要的是加入上述日期和时间,作为Date
。
startDateTime
= Tue Jul 17 2012 11:30:00 GMT+0530 (IST)
我试过了
new Date(startDate + " " + startDate)
但输出invalid date
.
也尝试了这篇文章中显示的方式。但仍然不起作用。
如果startTime
采用明确定义的格式,则可以轻松解析,然后使用 setHours
和 setMinutes
: 现场示例 | 来源
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 环境的时区内工作,而不是跨区域工作。如果您以日期字符串开头,并且该字符串指定了 JavaScript 环境时区以外的时区,然后您通过 new Date("Tues Jul....")
将其转换为Date
,那么您必须确保调整生成的Date
以使用环境的本地时间或 UTC;如果将其调整为 UTC,则将使用上面的setUTCHours
和setUTCSeconds
,而不是 setHours
和 setSeconds
。同样,仅当您的起点是日期字符串,并且该字符串指定的时区与运行上述代码的时区不同时,这才是一个问题。
你可以这样做:
var theDate = new Date("Tue Jul 17 2012 00:00:00 GMT+0530 (IST)");
var theTime = "11:30 AM";
var hours = theTime .substr(0,2);
var minutes = theTime .substr(3,2);
var amOrPm = theTime .substr(6,2);
if (hours < 12 && "PM" == amOrPm) {
hours = +hours + 12;
}
theDate.setHours(hours);
theDate.setMinutes(minutes);
试试
new Date(startDate.toDateString() + " " + startTime)
这会将 Date
对象的日期字符串与时间字符串组合在一起,并应为您提供有效日期。请注意,这会忽略您最初使用的时区,您可能需要再次添加" GMT+0530"
。
但是,由于您的日期字符串已经偏向于时区(2012 年 7 月 16 日,20:30:00 UTC(,因此最好将它们加在一起,即像 new Date(+startDate + milliseconds)
:
var startDate = new Date("Tue Jul 17 2012 00:00:00 GMT+0530");
var startTime = "11:30 AM";
return new Date(+startDate + +new Date("1 1 1970 "+startTime))
- Java脚本时间添加
- Json数据包含日期和时间格式
- 如何根据时间运行不同的脚本
- 设置流星重新连接时间
- 如何在打开连接时从Javascript发送一些附加数据,如用户名或时间
- JavaScript日期和时间连接
- 连接/拼接 Web 图像资源以缩短加载时间
- 了解用户是否连接到确定的wifi一段时间
- Javascript将日期和时间连接在一起
- 在nodejs中挂起一段时间后的http连接
- 连接日期和时间字符串到mongo日期对象
- XMPP web客户端(使用strophe.js)需要花费时间连接ejabberd服务器
- 猫鼬重新连接事件在一段时间后没有被触发
- 过期或时间限制套接字.node.js中的IO连接
- Ldapjs在一段时间后连接超时
- 套接字.IO node.js,如何记录连接时间,避免或考虑页面刷新/多个套接字
- 如何连接图表时间线与mysql,并在一个DIV中显示其他信息
- 在谷歌电子表格中连接日期和时间
- JavaScript ISO8601 3.5.2 时间(24 小时)数据类型与日历断开连接
- 套接字.IO需要很长时间才能触发断开连接事件