0

好吧,我知道这个问题在互联网上被问了一千次,但我是一个菜鸟,对 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>
4

3 回答 3

1

只需将字符串传递给Date构造函数。容易得多。

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

现在您已经有了两个成熟的Date实例,您可以随意使用它们。

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 !");
    }
}
于 2012-08-09T19:55:19.553 回答
0

如果您只想对它们进行比较,我什至不会费心将它们编码为日期,因为年、月和日字段已经按最重要到最不重要的顺序排列。如果您可以按照给定的顺序解析出年份、月份(以数字形式;0-origin 或 1-origin 都可以,只要您保持一致)和日期,那么您可以计算一个 integer i = (year * 10000)+(month * 100)+day

鉴于两个日期都如此转换,您可以使用正常的相等和排序运算符(==、<、>= 等),正如您所期望的那样。

于 2012-08-09T19:58:35.033 回答
0

你可以使用:

if (myDate.getTime() < myDateEnd.getTime()) 
{
    alert ("Error !");
}
于 2012-08-09T21:00:14.600 回答