首页 >web前端 >js教程 >如何可靠地验证 JavaScript 日期实例?

如何可靠地验证 JavaScript 日期实例?

Patricia Arquette
Patricia Arquette原创
2024-12-11 02:06:10277浏览

How Can I Reliably Validate JavaScript Date Instances?

在 JavaScript 中验证日期实例的有效性

确定 JavaScript 中日期实例的有效性可能具有挑战性。让我们探讨 “无效日期” 问题,并找到可靠检测无效 Date 对象的解决方案:

Date 对象是表示特定时刻的 JavaScript 构造。从无效日期字符串创建 Date 实例时会出现问题,如下例所示:

var d = new Date("foo");

此代码生成一个“无效日期”实例,该实例是 object 类型并继承自 Date 原型。但是,Object.prototype.toString.call(d) 返回“[object Date]”,并且 d instanceof Date 的计算结果为 true。

解决方案:

这里有一个检查有效 Date 实例的简单方法:

if (Object.prototype.toString.call(d) === "[object Date]") {
  if (isNaN(d.getTime())) {
    // Invalid Date
  } else {
    // Valid Date
  }
} else {
  // Not a Date object
}

此方法确保该实例是 Date 对象,并且它的时间值不是 NaN。如果任一条件失败,则 Date 实例被视为无效。

更新 [2018-05-31]:

对于来自外部上下文的 Date 对象不是担心,可以使用更简单的验证函数:

function isValidDate(d) {
  return d instanceof Date && !isNaN(d);
}

注意[2021-02-01]:

需要注意的是,“无效日期”和“无效日期对象”之间是有区别的。这个答案的重点是验证日期实例,而不是日期输入字符串。

以上是如何可靠地验证 JavaScript 日期实例?的详细内容。更多信息请关注PHP中文网其他相关文章!

声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn