web-dev-qa-db-ja.com

JavaScriptで日付の等価性を判断する

ユーザーが選択した2つの日付がJavaScriptで同じかどうかを調べる必要があります。日付は文字列( "xx/xx/xxxx")でこの関数に渡されます。これが必要なすべての粒度です。

ここに私のコードがあります:

        var valid = true;
    var d1 = new Date($('#datein').val());
    var d2 = new Date($('#dateout').val());
    alert(d1+"\n"+d2);
    if(d1 > d2) {
        alert("Your check out date must be after your check in date.");
        valid = false;
    } else if(d1 == d2) {
        alert("You cannot check out on the same day you check in.");
        valid = false;
    }

日付をオブジェクトに変換した後のJavaScriptアラートは次のようになります。

2011年1月25日火曜日00:00:00 GMT-0800(太平洋標準時)

2011年1月25日火曜日00:00:00 GMT-0800(太平洋標準時)

日付1が日付2よりも大きいかどうかを判断するテストが機能します。ただし、==または===演算子を使用しても、validがfalseに変更されることはありません。

60
Jarred

getTime()メソッドを使用します。日付の数値をチェックし、大小チェックと等しいチェックの両方で機能します。

編集:

if (d1.getTime() === d2.getTime())
121
spinon

getTime()を呼び出したくない場合は、これを試してください:

(a >= b && a <= b)

15
devmiles.com
_var d1 = new Date($('#datein').val());
var d2 = new Date($('#dateout').val());
_

2つの簡単な方法を使用して同等性を確認する

  1. if( d1.toString() === d2.toString())
  2. if( +d1 === +d2)
2
Arjun Kubendran