如何比较JavaScript中的两个日期格式2011-jan-21

时间:2012-08-09 19:51:45

标签: javascript html

嗯,我知道这个问题在互联网上被问过一千次,但我是一个菜鸟,并且不太了解Javascript功能。我想比较两个日期。 输入格式为=" 2011-jan-21"

这是我的想法,请帮忙!我真的很感激,因为我需要紧急工作。

   function compareDates() {
            var startDate=document.getElementById("startDate").value;
            var endDate = document.getElementById("endDate").value;
                months = {'jan': '01', 'feb': '02', 'mar': '03', 'apr': '04', 'may': '05',
                'jun': '06', 'jul': '07', 'aug': '08', 'sep': '09', 'oct': '10', 'nov': '11',
                'dec': '12'};
                split = startDate.split('-');
                var newStartDate = [split[2], months[split[1]], split[0]].join(',');

                split = endDate.split('-');
                var newEndDate = [split[2], months[split[1]], split[0]].join(',');

                var myDate=new Date();
                myDate.setFullYear(startDate);
                console.log(newStartDate);

                var myDateEnd=new Date();
                myDateEnd.setFullYear(endDate);

             if (myDate < myDateEnd) {
                alert ("Error !");
             }
        }


<form method="POST" id="myForm" onsubmit="compareDates()">
        <input id="startDate" />
        <input id="endDate" />
        <input type="Submit" />

    </form>

3 个答案:

答案 0 :(得分:1)

只需将字符串传递给Date构造函数即可。 很多更容易。

var startDate = new Date(document.getElementById("startDate").value);
var endDate = new Date(document.getElementById("endDate").value);

现在,您可以随意使用两个full-fledged Date instances

function compare()
{
    var startDate = new Date(document.getElementById("startDate").value);
    var endDate = new Date(document.getElementById("endDate").value);

    if (startDate.getTime() > endDate.getTime())
    {
        alert ("Error !");
    }
}

答案 1 :(得分:0)

如果您正在尝试对它们进行比较,我甚至不会将它们编码为日期,因为年,月和日字段已经处于最重要到最不重要的顺序。如果您可以解析年份,月份(以数字形式; 0-origin或1-origin为OK,只要您保持一致),并且按照给定的顺序排列日期,则可以计算整数{{ 1}}。

鉴于这两个日期都是如此转换,您可以按照预期使用正常的相等和排序运算符(==,&lt;,&gt; =等)。

答案 2 :(得分:0)

您可以使用:

if (myDate.getTime() < myDateEnd.getTime()) 
{
    alert ("Error !");
}