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

时间:2016-07-12 07:04:15

标签: javascript jquery google-chrome firefox

我的代码是这样的:

<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的结果有所不同?

1 个答案:

答案 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格式返回,它应与您创建对象的值相匹配。

相关问题