JavaScript检查Date对象是否为Invalid Date

时间:2022-05-06 16:56:32

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

在chrome控制台

>var date = new Date("hello");
>date
Invalid Date
>typeof date
“object”
>date instanceof Date
true

示例里使用非日期格式"hello"构造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())
}

另外date.getTime(),也可以改为date.valueOf()