繁体   English   中英

在Javascript中将DateTime字符串转换为时间戳

[英]Convert DateTime string to timestap in javascript

如果dd = "2012-08-20 01:16:00"; 将此日期转换为时间戳(如下面的代码所示)

var t = new Date(dd).getTime();

http://jsfiddle.net/userdude/DHxwR/

结果t = NaN为什么?

根据ECMA-262 (§15.9.1.15, 日期时间字符串格式 ,第169页),要求接受的唯一日期字符串格式为:

[+YY]YYYY[-MM[-DD]][THH:mm[:ss[.sss]]]Z

其中Z要么Z (对于UTC)或偏移由任一一个的+-接着HH:mm 不应依赖特定浏览器支持的任何其他格式,因为不能保证持续的支持。

因此,用T替换空格并在将其传递给Date构造函数之前附加Z或固定时区偏移量。 例如,如果日期和时间在UTC + 8区域中:

var dd = "2012-08-20 01:16:00";
var t = new Date(dd.replace(' ', 'T') + '+08:00').getTime();

这将返回从1970年1月1日午夜UTC到指定日期的毫秒数,将其视为通用时间(如果附加Z )或本地时间指定的固定时区偏移量。

请注意,这将采取不同的行动,因为日期不会简单地视为用户系统时区的本地时间,就像您的问题示例那样。 但是,我不能想到这样做会有用的情况,因为根据用户的配置会得到不同的结果 - 但实际上,无论你身在何处,两个日期之间的时差总是相同的。

尝试在年,月和日值之间使用空格或逗号。

这很简单:

+(new Date("2012-08-20 01:16:00"));

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM