JavaScript Node.js日期比较和数组按日期排序

Bil*_* VB 6 javascript date node.js

首先,JavaScript没有像Python那样的基本日期比较吗?

在我的Node.js脚本中,我有以下几行:

console.log(Date(2012,11,10) < Date(2012, 11, 9))
console.log(Date(2012,11,10) > Date(2012, 11, 9))
Run Code Online (Sandbox Code Playgroud)

但是,这两行都返回false.

似乎有很多关于"JavaScript中的日期比较"的问题.

然而,对于几乎所有人来说,有人用他们的自制解决方案来回应比较日期,其中一些很长和/或"hacky".

是否真的没有固有或惯用的方式来简单比较JavaScript中的日期.
任何Node库都支持它吗?

and*_*lrc 11

您需要使用new关键字

console.log(new Date(2012,11,10) < new Date(2012, 11, 9))
console.log(new Date(2012,11,10) > new Date(2012, 11, 9))
Run Code Online (Sandbox Code Playgroud)

正如Elias Van Ootegem指出,如果new省略关键字,则返回字符串是标准:

当Date作为函数而不是构造函数调用时,它返回表示当前时间(UTC)的String.

注意
函数调用Date(…)不等同于new Date(…)具有相同参数的对象创建表达式.

来源:15 .9.2日期构造函数被称为函数

  • [不仅仅是Chrome 22](http://www.ecma-international.org/ecma-262/5.1/#sec-15.9.2),它是省略`new`关键字时返回字符串的语言标准 (4认同)