JavaScript - Date(),new Date()和ISODate之间的区别

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JavaScript - Date(),new Date()和ISODate之间的区别相关的知识,希望对你有一定的参考价值。

我已经看过这个问题的各种版本,但没有一个回答我的问题。

我想创建一个ISODate。对于MongoDB。我正在使用Node.js

在Node中,当我这样做时:

console.log(Date());

我明白了:

2016年9月26日星期一15:17:04 GMT-0400(美国东部时间)< - 这是正确的。

当我做:

console.log(new Date());

我明白了:

2016-09-26T19:17:04.731Z < - 这是提前4个小时

我对ISODATE方式的理解是:

var isodate = new Date().toISOString()
console.log(isolate);

这比“现在”提前4小时。

我的系统日期是正确的。我运行这个不同的机器,我得到相同的结果。

有人可以解释为什么我会及时出现差异吗?

答案

区别在于2016-09-26T19:17:04.731Z与GMT0时区相关,Mon Sep 26 2016 15:17:04 GMT-0400 (EDT)与您当地时区相关。两者都指向同一时间:)

您可以在Wiki中阅读有关数据格式和时区的更多信息

另一答案

请注意Z结束时的2016-09-26T19:17:04.731Z?它代表Zulu,意思是UTC时区(GMT + 000)。

正如你在原始日期字符串中看到的那样,Mon Sep 26 2016 15:17:04 GMT-0400 (EDT)有一个GMT-0400时区,我想这是你居住的当地时间。所以,实际上没有问题,只是同一时间的不同表示:

  • Date()创建一个本地日期
  • new Date()创建UTC日期
另一答案

Date()new Date()之间差异的基本定义是:

  • Date()忽略传递给它的任何参数,相当于new Date().toISOstring()
  • new Date(Optional_arguments)在JS中创建一个time类型对象,您可以在其中执行:
  • getTime()Date.prototype上列出的其他MDN Website函数
  • Date()只是本地时间的字符串表示。 new Date()给你一个可操纵的物体来摆弄。

以上是关于JavaScript - Date(),new Date()和ISODate之间的区别的主要内容,如果未能解决你的问题,请参考以下文章

JavaScript-Date对象

JavaScript 的 new date() 和 date() 为啥输出不一样?

/Date(1410019200000+0800)/如何转换为date对象

JavaScript 中 Date() 和New Date()有啥区别?

JavaScript - Date(),new Date()和ISODate之间的区别

javascript中new是啥意思