为什么.toISOString()给出不同的时间?

时间:2019-01-22 23:03:23

标签: javascript

为什么这个样本给我22号而不是客户23号:

console.log(new Date().toISOString());

输出为:2019-01-22T22:58:46.606Z

客户端时间:

enter image description here

3 个答案:

答案 0 :(得分:3)

toISOString()方法始终以UTC输出时间。来自the docs

  

时区始终为零UTC偏移,如后缀“ Z”所示。

在这种情况下,日期仍然是UTC的22号,但是在您所在的时区,它已经是23号。

您在此处拥有的Date对象仍然位于您的本地时区。恰巧toISOString()方法总是输出一个UTC表示。如果您执行以下操作,则应该看到期望的日期:

console.log(new Date().toLocaleString()) // "1/22/2019, 3:14:18 PM" for me (US Pacific Time)

答案 1 :(得分:0)

toISOString()以ISO格式返回日期/时间,时区为UTC +0。

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toISOString

答案 2 :(得分:0)

只需添加已提供的内容即可。您仍然需要注意使用Date()方法。它可以根据您提供的内容生成不同的日期。

//This outputs midnight (12:00AM) on January 22nd in the UTC timezone
new Date('2019-01-22').toISOString() // output: "2019-01-22T00:00:00.000Z"

//This outputs 5:00AM on January 22nd in the UTC timezone because my PC is in the
//Eastern Standard timezone and I used a different format for my date string.
new Date('01/22/2019').toISOString() // output: "2019-01-22T05:00:00.000Z"