4

重複の可能性:
JavaScriptと日付を比較する

開始日と終了日の2つの日付があります。私はこれらを次のように比較しています:

var fromDate = $("#fromDate").val();
var throughDate = $("#throughDate").val();

if (startdate >= enddate) {
    alert('start date cannot be greater then end date')
}

正しい結果が得られます...唯一の問題は、2013年1月1日と2014年1月1日の日付を比較する場合です。

JavaScriptで日付を正しく比較するにはどうすればよいですか?

4

3 に答える 3

7

これを使用して比較を取得できます。

if (new Date(startDate) > new Date(endDate)) 

new Date(str)を使用すると、値が解析され、Date オブジェクトに変換されます。

于 2012-09-09T08:56:16.620 に答える
3

文字列を比較しています。最初にそれらを日付に変換する必要があります。文字列を分割して新しい日付を作成することで、これを行うことができます

new Date(year, month, day [, hour, minute, second, millisecond])

日付形式によっては、次のようになります。

var parts = "01/01/2013".split("/");
var myDate = new Date(parts[2], parts[1] - 1, parts[0]);
于 2012-09-09T08:54:12.327 に答える
0
        var fromDate = $("#fromDate").val();
      var toDate = $("#throughDate").val();

    //Detailed check for valid date ranges
        //if your date is like 09-09-2012
    var frommonthfield = fromDate.split("-")[1];
    var fromdayfield = fromDate.split("-")[0];
    var fromyearfield = fromDate.split("-")[2];


    var tomonthfield = toDate.split("-")[1];
    var todayfield = toDate.split("-")[0];
    var toyearfield = toDate.split("-")[2];


    var fromDate = new Date(fromyearfield, frommonthfield-1, fromdayfield);
    var toDate = new Date(toyearfield, tomonthfield-1, todayfield);

    if(fromDate.getTime() > today.getTime()){
        alert("from Date should be less than today")
        return;
    }
    if(toDate.getTime() > today.getTime()){
        alert("to Date should be less than today")
        return;
    }
    if(fromDate.getTime() > toDate.getTime()){
        alert("from date should be less than to date")
        return;
    }
于 2012-09-09T09:04:50.960 に答える