为什么我的日期比较在JavaScript中不起作用?
我已经非常广泛地研究了这个问题,并且我找到了一些有用的信息,但是我一直无法解决我的问题。我所要做的就是解析一个日期并将它与另一个日期进行比较。似乎很简单,对吧?以下是我已经试过:为什么我的日期比较在JavaScript中不起作用?
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
功能工作。它不显示警报窗口,即使我输入的日期早于今天的日期。正如你所看到的,我尝试了一些不同的东西。有什么建议么?
你的功能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() = "";
}
感谢您的帮助。你是对的;然而,似乎又出现了另一个问题。 Date.parse(document.getElementById('TxtDate').value'返回一个无法理解的值:'1465876800000'。你知道如何解决这个问题吗? – ic3man7019
yes Date.parse返回类似这样的东西 – Mairaj
Date.parse()
返回一个日期对象,而getCurrentDate()
返回一个字符串。添加Date.parse()
有太多:
if (Date.parse(document.getElementById('TxtDate').value) > Date.parse(getCurrentDate()))
在处理日期时,所有*看起来都很简单。不是。使用库 - http://momentjs.com – Jamiec
你正在比较一个日期到一个字符串... –
顺便说一句,bith的答案是正确的,但就此而言,为什么要从'Date'转到'string'并返回到'日期“ - 你已经知道如何获得今天的日期作为日期对象(你在'getCurrentDate'中做过) – Jamiec