【发布时间】:2013-07-06 21:51:59
【问题描述】:
我想在 JavaScript 中解析没有时区的日期。我试过了:
new Date(Date.parse("2005-07-08T00:00:00+0000"));
返回 2005 年 7 月 8 日星期五 02:00:00 GMT+0200(中欧夏令时间)
new Date(Date.parse("2005-07-08 00:00:00 GMT+0000"));
返回相同的结果
new Date(Date.parse("2005-07-08 00:00:00 GMT-0000"));
返回相同的结果
我要解析时间:
无时区。
不调用构造函数 Date.UTC 或 new Date(year, month, day)。
只是简单地将字符串传递给 Date 构造函数(没有原型方法)。
我必须生成
Date对象,而不是String。
【问题讨论】:
-
您可以省略
Date.parsebtw 直接将字符串传递给Date构造函数。 -
我不确定你为什么需要这个,但我很确定 Date 总是有用户的本地时区。如果您希望您的 JavaScript 与其他时区一起工作,而不是必须为 Date 使用包装器对象,也许这对您有用:github.com/mde/timezone-js
-
不幸的是,我不得不复制
Date对象以获得正确的对象来比较 MongoDB 中的日期:new Date(dateStart.getFullYear(), dateStart.getMonth(), dateStart.getDate()) -
如果要解析没有时间的日期,则需要指定要假设的时区,因为“2005-07-08”在不同的时区表示不同的东西。截至 2020 年 5 月,由于实现上的差异,MDN 文档建议不要使用任何内置的日期解析功能。但是,使用 Date.parse("2005-07-08") 可能会返回 00:00 UTC 的时间。另一方面,date-fns parse,在解析相同的日期字符串时将返回本地时间 00:00
标签: javascript date timestamp-with-timezone