在Javascript中使用新日期(“2014年8月11日”)和新日期(“2014-08-11”)的不同日期

时间:2014-08-11 10:29:45

标签: javascript date date-parsing

new Date("2014 Aug 11")Mon Aug 11 2014 00:00:00 GMT+0100 (GMT Daylight Time)提供了正确的,但

new Date("2014-08-11")提供Mon Aug 11 2014 01:00:00 GMT+0100 (GMT Daylight Time)

为什么这两个日期有1小时的差异?

我试图减去2个日期,并期望结果为' 0'如果两个日期相同。但在我上面的例子中,它不是ZERO!

2 个答案:

答案 0 :(得分:10)

the MDNparse函数(在Date构造函数中解析is used)中解释了它的完整性:

  

给定日期字符串" 2014年3月7日",解析假设一个本地时区,但给定ISO格式,例如" 2014-03-07"它将假定UTC的时区。因此,使用这些字符串生成的Date对象将表示不同的时刻,除非系统设置了UTC的本地时区

GMT + 2中的人会看到2小时的差异。

如果您无法正确解析日期,并且您对作为输入的字符串类型有信心,则可能强制使用时区:

var date = new Date(str+" UTC");

答案 1 :(得分:0)

对于您的查询,您可以尝试这种新的Date()格式

新日期(“2014,08,11”)它将于2014年8月11日星期一00:00:00 GMT + 0100(GMT日光时间)。