Javascript 什么是toIsoString(),为什么它给我的时间少于当前时间

Javascript 什么是toIsoString(),为什么它给我的时间少于当前时间,javascript,node.js,momentjs,Javascript,Node.js,Momentjs,好的,我有一个场景,我将日期与数据库中的日期进行比较。日期的格式为“2016-11-16T18:00:19.000Z”以及我使用 var time = moment().toISOString(); 我希望得到上述格式的当前日期,但它给了我一个结果,这是大约几个小时后。 那么什么是toIsoString呢?要了解toIsoString()请参阅 它落后了几个小时,因为它与你的时区无关 时区始终为零UTC偏移,由后缀“Z”表示 我猜这个差异和你当地时间和UTC之间的差异是一样的 对于“时刻”,日

好的,我有一个场景,我将日期与数据库中的日期进行比较。日期的格式为“2016-11-16T18:00:19.000Z”以及我使用

var time = moment().toISOString();
我希望得到上述格式的当前日期,但它给了我一个结果,这是大约几个小时后。
那么什么是toIsoString呢?

要了解
toIsoString()
请参阅

它落后了几个小时,因为它与你的时区无关

时区始终为零UTC偏移,由后缀“Z”表示


我猜这个差异和你当地时间和UTC之间的差异是一样的


对于“时刻”,日期始终被解释为当地时间。toISOString函数始终以UTC格式返回时间戳,即使参数为本地时间()。

它使用UTC以ISO格式返回时间。如果您位于本初子午线的“东部”,那么这将是一个更早的时间。因此,如果使用toIsoString格式存储日期,并且如果我需要显示存储日期的时间,则我从db中获取的值是错误的。或者确实需要重新设置格式以匹配当前时间。我只是在这里感到困惑。使用
Date('2013-03-10T02:00:00Z')。toLocaleString()
设置与本地时区匹配的格式。还有一个问题:我们为什么要麻烦地将日期存储为ISOString格式,以便稍后将其更改为当前时间进行计算等@sacDahal,这可能是因为您可以将其转换为本地时区,供查看页面的人使用