当天数大于月份时,javascript Date 会创建奇怪的日期

标签 javascript date

我有一个输入表单,用户可以从日历中选择日期,但我也希望他们能够手动输入日期

当用户点击输入框之外时调用函数 validateDate()

    //Make sure valid date is entered into the field, otherwise throw back an error
function validateDate(date) {
    var dateObj = new Date(date);

    console.log(dateObj.getDate());

    if (dateObj == "Invalid Date") {
        dateWrongFormat(false);
        return false;
    }

    return dateTimeToString(dateObj, true);
}

问题是:如果用户意外输入“55/02/2014”之类的内容,它会转换为“02 Jul 2018”,而不是显示它是无效日期(注意:这是今年过去的 4 年)他们进来了)。

是否有简单的方法来检查日期或月份是否无效,或者我是否必须创建自己的日期检查系统?

编辑:所以看起来无论我输入什么,它都认为它是一个有效的日期 - 即使使用 moment.js 进行格式化。感谢大家的帮助,但我必须为此编写自己的帮助!

最佳答案

尝试使用 Date.parse。如果您执行 Date.parse("55/02/2014"),它将返回 NaN。

更新 像这样的东西-

 <script>
    function validateDate(date) {
        var datems = Date.parse(date);

        if (isNaN(datems)) {
            dateWrongFormat(false);
            return false;
        }else{
        var dateObj = new Date(date);
        return dateTimeToString(dateObj, true);
        }
    }

    </script>

关于当天数大于月份时,javascript Date 会创建奇怪的日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29158547/

相关文章:

javascript - 确定哪个输入字段触发 ng-change?

javascript - 还原隐藏部分

java.util.Date 的行为

C# 从今天的日期获取下一个第 N 个星期五的日期

sql - Postgresql/SQL - 我的日期/时间戳逻辑似乎可靠但产生空值

javascript - 格式 ###.## 的非负和非零正则表达式

javascript - 如何在数组中搜索多个可能的匹配项

javascript - 调整元素大小和浏览器窗口大小

java - 如何将不同时区的日期字符串转换为一个时区中的日期对象

python - 在 Django Q 对象中查找最新日期