为什么将字符串日期转换为日期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返回它,该值应与您创建对象的值相匹配。