javascript中的日期转换和日期比较

时间:2014-01-15 06:30:10

标签: javascript date

我正在尝试将当前日期与javascript中的两个给定日期进行比较。我正在以YYYY-mm-dd格式转换日期,然后比较日期。但我观察到奇怪的事情。 这是我的代码 Java脚本

function getyear()
{
    var year=document.getElementById('ddlyear').value;
    var today = new Date();
    var dd = today.getDate();
    var mm = today.getMonth()+1; //January is 0!

    var yyyy = today.getFullYear();
    if(dd<10){dd='0'+dd} if(mm<10){mm='0'+mm} var today = yyyy+'-'+mm+'-'+dd;
    document.getElementById('hdndate').value = today;
    var date1=document.getElementById('hdndate').value;
    alert(date1);

    var date2=new Date("2014-01-01");
    var dd = date2.getDate();
    var mm = date2.getMonth()+1; //January is 0!

    var yyyy = date2.getFullYear();
    if(dd<10){dd='0'+dd} if(mm<10){mm='0'+mm} var date2 = yyyy+'-'+mm+'-'+dd;

    alert(date2);
    var date3=new Date("2014-12-31");
    var dd = date3.getDate();
    var mm = date3.getMonth()+1; //January is 0!

    var yyyy = date3.getFullYear();
    if(dd<10){dd='0'+dd} if(mm<10){mm='0'+mm} var date3 = yyyy+'-'+mm+'-'+dd;

    alert(date3);

    if(year==1)
    {
        alert("January 2014-December 2014");

        if (date1 > date2 && date1 < date3 ){
         alert('Correct Date')
    }
    else{
        alert('Out Side range !!')
    }
    }
    else if(year==2)
    {
        alert("January 2015-December 2015");

    }
}

当我试图提醒date2和date3时,我没有收到我给出的日期 date2和date3的输出是2013-12-31和2014-12-30。我不知道为什么会这样。请在这方面帮助我。我是JS的新手。

1 个答案:

答案 0 :(得分:0)

请参阅此处列出的有关根据ISO标准错误解析日期的答案,因为我无法将其标记为重复。你发出的原因是一样的。如果你检查

date.toISOString();

您将看到日期的ISO格式正确,但Date对象默认显示当前时区下的已解析日期。

Stack Overflow Post: javascript-date-parse