Javascript 如果不包括当前日期,我如何检查日期是否不是过去的?
因此,我有一个checkDate函数,用于在提交之前验证在web表单上输入的日期是否在过去。问题是,如果输入的日期是今天的日期,此函数也会返回错误。我假设这与datetimes如何格式化为DD:MM:YYYY HH:MM:SS.sss,然后转换为其历元值有关,但我不确定如何验证输入的日期不是今天,同时仍然检查它不是过去的日期 我已将我的checkDate函数全部发布在下面: 请注意:带有我们要检查的日期字符串的文本框名为txtNeedByJavascript 如果不包括当前日期,我如何检查日期是否不是过去的?,javascript,jquery,date,datetime,Javascript,Jquery,Date,Datetime,因此,我有一个checkDate函数,用于在提交之前验证在web表单上输入的日期是否在过去。问题是,如果输入的日期是今天的日期,此函数也会返回错误。我假设这与datetimes如何格式化为DD:MM:YYYY HH:MM:SS.sss,然后转换为其历元值有关,但我不确定如何验证输入的日期不是今天,同时仍然检查它不是过去的日期 我已将我的checkDate函数全部发布在下面: 请注意:带有我们要检查的日期字符串的文本框名为txtNeedBy 我强烈建议使用像这样的库 该库有一个.is方法,允许您非
我强烈建议使用像这样的库
该库有一个.is方法,允许您非常轻松地进行此类比较。不要重新发明轮子:附带说明:代码末尾不需要===true。if语句仅在条件为true时运行。如果您有一个布尔变量true/false,则不必检查它的值===true,因为您所做的实际上是iftrue==true。true===true返回true,这意味着您可以首先忽略检查。还有,为什么你在声明ValidateDate时没有var关键字呢?我想我要试试ChrisV发布的答案。至于ValidateDate变量,这是一个在别处声明的全局变量,我的缺点是没有包含它。
function checkDate() {
var date = new Date($("#txtNeededBy").val());
ValidateDate = false;
if (Date.parse(date) < Date.now()) {
sb.append("<li>Needed by date must not be in the past.</li>");
$("#txtNeededBy").addClass("input_error");
ValidateDate = true;
if (sb.toString().length > 0) {
$(".Errors").html(sb.toString());
$(".Errors").show();
return false;
}
} else {
$("#txtNeededBy").removeClass("input_error");
}
if (ValidateDate === true) {
return false;
}
}