检查 Date 对象是否为 Invalid Date

发布于 2023-05-12 18:11:57 字数 1395 浏览 55 评论 0

使用 Date() 构造日期对象,如果传入非日期格式或者错误的日期格式的字符串,仍然能构造出 Date 对象。

var date = new Date("dream");
console.log('date:', date);  //Invalid Date
console.log('date:', typeof date);  //“object”
console.log('date:', date instanceof Date);  //true

var date2 = new Date("2019-053");
console.log('date2:', date2);  //Invalid Date
console.log('date2:', typeof date2);  //“object”
console.log('date2:', date2 instanceof Date);  //true

示例里使用非日期格式 dream(错误日期格式 2019-053)构造 Date 对象

  1. 直接输出 date,结果为 Invalid Date
  2. 使用 typeof 判断 date 的类型,得到结果为 object
  3. 使用 instanceof 检测 date 是否为 Date 类型,结果为 true。

使用 Date 的 getTime() 方法,Invalid Date 对象返回的是一个 NaN,可以利用这点来检查 Date 对象是否为 Invalid Date。

function isValidDate(date) {
  return date instanceof Date && !isNaN(date.getTime())
}

// 也可以
//  function isValidDate(date) {
//    return date instanceof Date && !isNaN(date.valueOf())
//  }

var date = new Date("dream");
console.log('结果',isValidDate(date)); //false

var date2 = new Date("2019-053");
console.log('结果',isValidDate(date2)); //false

var date3 = new Date("2019-05-09");
console.log('结果',isValidDate(date3)); //true

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据

关于作者

带刺的爱情

暂无简介

0 文章
0 评论
22 人气
更多

推荐作者

烙印

文章 0 评论 0

singlesman

文章 0 评论 0

独孤求败

文章 0 评论 0

晨钟暮鼓

文章 0 评论 0

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文