Javascript 如果不包括当前日期,我如何检查日期是否不是过去的?

Javascript 如果不包括当前日期,我如何检查日期是否不是过去的?,javascript,jquery,date,datetime,Javascript,Jquery,Date,Datetime,因此,我有一个checkDate函数,用于在提交之前验证在web表单上输入的日期是否在过去。问题是,如果输入的日期是今天的日期,此函数也会返回错误。我假设这与datetimes如何格式化为DD:MM:YYYY HH:MM:SS.sss,然后转换为其历元值有关,但我不确定如何验证输入的日期不是今天,同时仍然检查它不是过去的日期 我已将我的checkDate函数全部发布在下面: 请注意:带有我们要检查的日期字符串的文本框名为txtNeedBy 我强烈建议使用像这样的库 该库有一个.is方法,允许您非

因此,我有一个checkDate函数,用于在提交之前验证在web表单上输入的日期是否在过去。问题是,如果输入的日期是今天的日期,此函数也会返回错误。我假设这与datetimes如何格式化为DD:MM:YYYY HH:MM:SS.sss,然后转换为其历元值有关,但我不确定如何验证输入的日期不是今天,同时仍然检查它不是过去的日期

我已将我的checkDate函数全部发布在下面:

请注意:带有我们要检查的日期字符串的文本框名为txtNeedBy


我强烈建议使用像这样的库


该库有一个.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;
    }
}