javascript - 将 DateTime 字符串转换为 javascript 中的时间戳

标签 javascript date time timestamp

如果 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

其中 ZZ(对于 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)或本地时间您指定的固定时区偏移量。

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

关于javascript - 将 DateTime 字符串转换为 javascript 中的时间戳,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12030478/

相关文章:

javascript - 更改硬编码的 JS 变量值

python - 在 python 中列出两个日期之间的小时数

javascript - 如何以 hh :mm AM/PM in Javascript? 格式获取当前时间

Javascript 时间和工作日/周末 CSS 更改

php - Mysql 子时间当前时间 - $row ['time' ]

javascript - 替换字符串中的值

javascript - 通过单击在两个图像之间切换

javascript - Vue.js 单文件组件中的 Mapbox-gl (Quasar-Framework)

date - os.time() Lua 生成的错误处理表

java - java中获取开始时间和结束时间