JavaScript Node.jsdate比较和数组按datesorting
首先,JavaScript有没有基本的date比较Python的方式?
在我的Node.js脚本中,我有以下几行:
console.log(Date(2012,11,10) < Date(2012, 11, 9)) console.log(Date(2012,11,10) > Date(2012, 11, 9))
但是, 这两行都返回false 。
看起来有很多关于“JavaScript比较date”的问题。
然而,几乎所有的人都用自己的解决scheme来回答比较date,其中一些是相当长的和/或“黑客”的。
是否真的没有固有的或惯用的方法来比较JavaScript中的date。
任何Node库支持吗?
你需要使用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))
正如Elias Van Ootegem指出的,如果省略new
关键字,则返回一个string是一个标准:
Date作为函数调用而不是构造函数时,它返回一个表示当前时间(UTC)的String。
注意
函数调用Date(…)
不等于对象创buildexpression式new Date(…)
具有相同的参数。
来源: 15.9.2作为函数调用的date构造函数
我自己也碰到了date比较问题,虽然我可以看到@ dev-null的答案对构build为new Date(2012,11,10)
,但对于分析date似乎不起作用,至less在我的情况下:
[vps@palladin]~$ node -v v4.3.2 [vps@palladin]~$ node > new Date('Wed Mar 09 2016 17:31:58 GMT-0800 (PST)') == new Date('Wed Mar 09 2016 17:31:58 GMT-0800 (PST)') false > new Date('Wed Mar 09 2016 17:31:58 GMT-0800 (PST)') < new Date('Wed Mar 09 2016 17:31:58 GMT-0800 (PST)') false > new Date('Wed Mar 09 2016 17:31:58 GMT-0800 (PST)') > new Date('Wed Mar 09 2016 17:31:58 GMT-0800 (PST)') false
我发现可靠地比较J / S Date对象的唯一方法是使用getTime()
函数,并比较两者的结果。
> new Date('Wed Mar 09 2016 17:31:58 GMT-0800 (PST)').getTime() == new Date('Wed Mar 09 2016 17:31:58 GMT-0800 (PST)').getTime() true > new Date('Wed Mar 09 2016 17:31:58 GMT-0800 (PST)').getTime() < new Date('Wed Mar 09 2016 17:31:58 GMT-0800 (PST)').getTime() false > new Date('Wed Mar 09 2016 17:31:58 GMT-0800 (PST)').getTime() > new Date('Wed Mar 09 2016 17:31:58 GMT-0800 (PST)').getTime() false
- 如何读取Node.js缓冲区上的UInt64 Double?
- node.js返回GMT时间,而不是“new Date()”的本地时间。 这是一个错误?
- 将yyyymmddThhmmss.SSSZ格式转换为Unix Timestmp
- 与date(2015-01-01)不同的date('2015-1-1')输出
- 正确的方法来转换javascriptdate时区
- 在Javascript / NodeJS返回当前date调整为时区,然后查找上午6时UTC用户的时间等效
- 这是什么时间格式,我如何将其转换为时代?
- 有没有提供模糊datestring的任何Node.js模块?
- Cloud Server vs Local上的NodeJSdate不同