1. ホーム
  2. javascript

[解決済み] moment.jsで日付だけを比較する方法

2022-06-05 14:18:30

質問

moment.jsの初心者です。私は日付オブジェクトを持っており、それはそれに関連するいくつかの時間を持っています。私はちょうどその日付が今日の日付以上であるかどうかをチェックしたいです。 比較するときに時間を除きます。

 var dateToCompare = 2015-04-06T18:30:00.000Z

dateToCompareが今日の日付と同じかそれ以上かを調べたいだけなんです。 moment.jsのisSameを確認しましたが、文字列を受け取り、日付の部分だけ受け取るようです。しかし、私は日付を文字列に変換したり、それ以上操作したくありません。なぜなら、javascriptがその日付を文字列に変換するときに何か予期しないこと(オフセットまたはdstを追加するなど)をするのではないかと心配するからです。

ドキュメントにあるisSame()のサンプル

moment('2010-10-20').isSame('2010-10-20');

また、isSame()とisAfter()を1つのステートメントとして結合したようなものを探しています。

私はmoment.jsのみを使用して比較する必要があります。プレーンjavascriptの日付比較を提案しないでください。

どのように解決するのですか?

ドキュメントがかなり明確です には、粒度を指定するために第二パラメータを渡すことが書かれています。

粒度をミリ秒以外の単位で制限したい場合は、第2パラメータに単位を渡します。

moment('2010-10-20').isAfter('2010-01-01', 'year'); // false
moment('2010-10-20').isAfter('2009-12-31', 'year'); // true

第2パラメータは、チェックする値を1つだけでなく、精度を決定するため、dayを使用すると、年、月、日をチェックすることになります。

あなたの場合 'day' を第二引数として渡します。