Date.parse不起作用

时间:2016-12-13 21:25:33

标签: javascript date datetime

在javascript中我试过这个

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

它输出一个日期对象,但日期为Wed Dec 14 19:00:00 EST 2016。为什么当我期望它作为12月15日时它会降低14?

由于

3 个答案:

答案 0 :(得分:0)

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

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

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

答案 1 :(得分:0)

JavaScript dates不包含时区。您解析的日期将被解释为2016年12月15日午夜UTC。

当您将其转换回字符串时,它会使用您浏览器区域设置中的时区,并且由于您似乎位于美国东海岸,因此适当的时区是EST。

7pm EST equals midnight the next day in UTC.

答案 2 :(得分:0)

Parse不是解析日期的可靠方法......

  

假定时区的差异

     

给定日期字符串" 2014年3月7日",parse()假定当地时间   区域,但给定ISO格式,如" 2014-03-07"它会假设一个   UTC时区(ES5和ECMAScript 2015)。因此Date对象   使用这些字符串生成可能代表不同的时刻   取决于支持的ECMAScript的版本,除非系统是   使用UTC的本地时区进行设置。这意味着两个日期字符串   看似等效的可能会导致两个不同的值取决于   正在转换的字符串的格式。

- Source -

我认为您应该使用其时区获取客户日期并使用Moment.js之类的库来正确解析日期。