2016-12-13 42 views
0

在javascript中我想这Date.parse不工作

new Date(Date.parse("2016-12-15")); 

,并将其输出的日期对象,但随着日期Wed Dec 14 19:00:00 EST 2016。为什么预计十一月十五日的时候是十四岁?

感谢

+4

由于时区。它将日期解析为UTC,但您位于EST,因此它显示为前一天。 –

+0

如何将它设置为EST时区((UTC-05:00)东部时间(美国和加拿大))的时区? – omega

+0

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/parse –

回答

0

您可以创建一个特定的UTC时间使用.Date.UTC()方法Date对象,但你必须单独值传递:

new Date(Date.UTC(year, month, day, hour, minute, second));

更好,更安全的方法是使用moment.js

0

解析不解析你的约会一个可靠的方法...

在假定的时区

差异鉴于 “2014年3月7日” 的日期字符串,parse()假定本地时间为 区域,但给定ISO格式(例如“2014-03-07”),它将假设UTC时间区域为 (ES5和ECMAScript 2015)。因此使用这些字符串生成的日期对象 可能代表不同的时刻 ,具体取决于支持的ECMAScript版本,除非系统是使用UTC本地时区设置的 。这意味着两个显示等效的日期字符串 可能会导致两个不同的值,具体取决于要转换的字符串的格式。

- Source -

我想你应该得到的客户端日期与它的时区,并使用图书馆像Moment.js正确地解析日期。