为什么我的日期比较在JavaScript中不起作用?

时间:2016-06-21 14:04:28

标签: javascript date

我已经对此问题进行了相当广泛的研究,并且我找到了一些有用的信息,但我无法解决我的问题。我要做的就是解析一个日期并将其与另一个日期进行比较。看似简单吧?这是我尝试过的:

    function getCurrentDate() { //this function simply returns today's date
                var today = new Date();
                var dd = today.getDate();
                var mm = today.getMonth() + 1; 
                var yyyy = today.getFullYear();

                if (dd < 10) {
                    dd = '0' + dd
                }

                if (mm < 10) {
                    mm = '0' + mm
                }
                today = mm + '/' + dd + '/' + yyyy;
                return today; 
}

$("#TxtDate").blur(function () {
            var projectDueDate = Date.parse($("#lblDueDate").val()); //parses the project due date label to create a date variable
            var itemDueDate = new Date($("#TxtDate").val()); //parses the value the user entered into the due date box to create a date variable
            var actualProjectDueDate = new Date(projectDueDate);

            if (Date.parse(document.getElementById('TxtDate').value) > getCurrentDate()) {
                alert("The date you entered precedes today's date. Please enter a valid date.");
                $("#TxtDate").val() = "";
            }
        });

if TxtDate语句在blur {{1}}函数中无效。它没有显示警报窗口,即使我输入的日期早于今天的日期。如你所见,我尝试了一些不同的东西。有什么建议吗?

2 个答案:

答案 0 :(得分:0)

Date.parse()返回日期对象,而getCurrentDate()返回字符串。在那里添加Date.parse()

if (Date.parse(document.getElementById('TxtDate').value) > Date.parse(getCurrentDate()))

答案 1 :(得分:0)

您的功能getCurrentDate正在返回string而不是date object,您正在将其与date object进行比较。因此,您需要解析getCurrentDate的返回值。

if (Date.parse(document.getElementById('TxtDate').value) > Date.parse( getCurrentDate())) {
  alert("The date you entered precedes today's date. Please enter a valid date.");
  $("#TxtLeaveFrom").val() = "";
}