6

まず、JavaScript には Python のような基本的な Date 比較がありませんか?

Node.js スクリプトには、次の行があります。

console.log(Date(2012,11,10) < Date(2012, 11, 9))
console.log(Date(2012,11,10) > Date(2012, 11, 9))

ただし、これらの行はどちらもfalseを返します。

「JavaScript での日付比較」に関する質問が山ほどあるようです。

ただし、ほとんどすべての日付に対して、日付を比較するための自家製のソリューションで応答する人がいます。それらのいくつかは、非常に長く、および/または「ハッキー」です。

JavaScript で日付を単純に比較するための固有または慣用的な方法は本当にありませんか。
Nodeライブラリはそれをサポートしていますか?

4

2 に答える 2

3

私は自分で日付比較の問題に遭遇しましたが、@ dev-nullの答えがとして構築された日付に対して機能することがわかりますがnew Date(2012,11,10)、少なくとも私の場合、解析された日付に対しては機能しないようです:

[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
于 2016-03-10T01:48:38.960 に答える