为什么将字符串日期转换为日期javascript无法在chrome中运行?

我的代码是这样的:

 var createDate = '2016-07-12 09:09:38'; createDate = createDate.replace(" ", "T"); createDate = new Date(createDate); console.log(createDate);  

在Firefox中: Date {Tue Jul 12 2016 09:09:38 GMT+0700 (SE Asia Standard Time)}

在Chrome中: Tue Jul 12 2016 16:09:38 GMT+0700 (SE Asia Standard Time)

为什么铬的结果有所不同?

您需要明确告诉JavaScript您存储的日期当前是UTC(与GMT相同)。 你这样做是通过附加Z代表Zulu Time 。 如果您没有指定它,它将回退到浏览器的格式实现,这是不一致的。

 var createDate = '2016-07-12 09:09:38Z'; createDate = createDate.replace(" ", "T"); createDate = new Date(createDate); 

将变量记录到控制台时,您可能会注意到仍显示的日期/时间之间的差异。 请注意日期/时间是正确的,这一点很重要。 同样,它与浏览器的格式化实现有关。 您可以通过以下方式确认内部值是否正确:

 console.log(createDate.toString()) console.log(createDate.toUTCString()) 

toString()将返回本地时区中的日期/时间, toUTCString()将以UTC / GMT返回它,该值应与您创建对象的值相匹配。