如何在不包括当前日期的情况下检查日期是否不是过去

How can I check that a date is not in the past without including the current day?

本文关键字:是否 日期 过去 检查 情况下 不包括 当前日期      更新时间:2023-09-26

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

我在下面完整地发布了我的checkDate()函数:

请注意:带有我们正在检查的日期字符串的文本框名为 txtNeededBy .

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;
    }
}

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

该库有一个.is()方法,可以让你非常容易地进行这些类型的比较。 不要重新发明轮子:)