Javascript计算给定日期是当前日期还是未来日期?
在日期选择器中,我希望限制输入以防止日期出现在过去。我使用了下面的JavaScript,但在某些情况下失败Javascript计算给定日期是当前日期还是未来日期?,javascript,jquery,Javascript,Jquery,在日期选择器中,我希望限制输入以防止日期出现在过去。我使用了下面的JavaScript,但在某些情况下失败 function isPastDate(value) { var now = new Date; var target = new Date(value); if (target.getFullYear() < now.getFullYear()) { return true; } else
function isPastDate(value) {
var now = new Date;
var target = new Date(value);
if (target.getFullYear() < now.getFullYear()) {
return true;
} else if (target.getMonth() < now.getMonth()) {
return true;
} else if (target.getDate() < now.getDate()) {
return true;
}
return false;
}
函数isplastdate(值){
var now=新日期;
var目标=新日期(值);
if(target.getFullYear()
有人能帮我吗?请看:
var selectedDate=$('#datepicker')。datepicker('getDate');
var now=新日期();
如果(已选择日期<现在){
//所选日期为过去日期
}
请参见:
var selectedDate=$('#datepicker')。datepicker('getDate');
var now=新日期();
如果(已选择日期<现在){
//所选日期为过去日期
}
正如epascarello所说,只需比较两个日期:
function isPastDate(value) {
return new Date() > new Date(value);
}
之所以会出现这种情况,是因为自1970年1月1日以来,日期是以毫秒为单位测量的(如果我错了,请纠正我),所以真正发生的是两个长数字之间的比较。正如epascarello所说,只需比较两个日期:
function isPastDate(value) {
return new Date() > new Date(value);
}
之所以会出现这种情况,是因为自1970年1月1日以来,日期是以毫秒为单位测量的(如果我错了,请纠正我),所以真正发生的是两个长数字之间的比较。您的函数在逻辑上是错误的,并且在测试月份之前不会检查年份是否确实相同,月份和天数也是一样的。 您可以尝试:
function isPastDate(value) {
var now = new Date;
var target = new Date(value);
if (target.getFullYear() < now.getFullYear()) {
return true;
} else if (target.getFullYear() === now.getFullYear())
if (target.getMonth() < now.getMonth()) {
return true;
} else if (target.getMonth() === now.getMonth()) {
if (target.getDate() < now.getDate()) {
return true;
}
}
}
return false;
}
函数isplastdate(值){
var now=新日期;
var目标=新日期(值);
if(target.getFullYear()
希望这能有所帮助您的函数在逻辑上是错误的,在测试月份之前,不要检查年份是否确实相同,月份和天数也是一样的。 您可以尝试:
function isPastDate(value) {
var now = new Date;
var target = new Date(value);
if (target.getFullYear() < now.getFullYear()) {
return true;
} else if (target.getFullYear() === now.getFullYear())
if (target.getMonth() < now.getMonth()) {
return true;
} else if (target.getMonth() === now.getMonth()) {
if (target.getDate() < now.getDate()) {
return true;
}
}
}
return false;
}
函数isplastdate(值){
var now=新日期;
var目标=新日期(值);
if(target.getFullYear()
希望这有帮助在什么情况下它会失败?你把一件简单的事情复杂化了
console.log(now>target)
有人从这里复制了答案:??@epascarello ya我遵循了那一条并失败了。怎么失败的?解释它是如何失败的…在什么情况下失败?你把一件简单的事情复杂化了console.log(now>target)
有人从这里复制了答案:??@epascarello ya我跟着那件事失败了。怎么失败的?解释它是如何失败的…如果你想在以后使用它,你可以使用时间戳。如果没有,这个方法就可以了。有关JavaScript时间戳的信息,请参阅。如果您以后想使用它,可以使用时间戳。如果没有,这个方法就可以了。有关JavaScript时间戳,请参见。