我的代码是这样的:
<script type="text/javascript">
var createDate = '2016-07-12 09:09:38';
createDate = createDate.replace(" ", "T");
createDate = new Date(createDate);
console.log(createDate);
</script>
在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)
为什么chrome的结果有所不同?
答案 0 :(得分:0)
您需要明确告诉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格式返回,它应与您创建对象的值相匹配。