1. ホーム
  2. javascript

[解決済み] JavaScriptで時刻を比較せず、日付部分だけを比較する。

2022-03-21 07:25:53

質問

以下のコードのどこが問題なのでしょうか?

時間ではなく、日付だけを比較する方がシンプルかもしれません。私もこの方法がよくわからず、検索しましたが、私の問題を正確に見つけることができませんでした。

ちなみに、アラートで2つの日付を表示すると、全く同じものとして表示されます。

私のコード

window.addEvent('domready', function() {
    var now = new Date();
    var input = $('datum').getValue();
    var dateArray = input.split('/');
    var userMonth = parseInt(dateArray[1])-1;
    var userDate = new Date();
    userDate.setFullYear(dateArray[2], userMonth, dateArray[0], now.getHours(), now.getMinutes(), now.getSeconds(), now.getMilliseconds());

    if (userDate > now)
    {
        alert(now + '\n' + userDate);
    }
});

日付を比較する際に、時間を含めないもっと簡単な方法はないでしょうか?

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

私はまだJavaScriptを勉強中ですが、2つの日付を時間なしで比較するために、私が見つけた唯一の方法は setHours メソッドを実行し、時、分、秒、ミリ秒をゼロに設定します。そして、2つの日付を比較します。

例えば

date1 = new Date()
date2 = new Date(2011,8,20)

date2 は、時、分、秒、ミリ秒がゼロに設定されますが、date1には、date1が作成された時刻が設定されます。date1の時、分、秒、ミリ秒を消すには、次のようにします。

date1.setHours(0,0,0,0)

これで、time 要素を気にすることなく、DATES としてのみ 2 つの日付を比較することができます。