Date的Invalid Date

简介: Date的Invalid Date

使用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对象

直接输出date,结果为Invalid Date

使用typeof判断date的类型,得到结果为“object”

使用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


目录
相关文章
|
6月前
|
Shell
date $(date --date="2 days" +"%m%d")$(date +"%H%M")然后再输入date时间没变啊
date $(date --date="2 days" +"%m%d")$(date +"%H%M")然后再输入date时间没变啊
tp5时间戳字段报错Invalid datetime format: 1292 Incorrect datetime value
tp5时间戳字段报错Invalid datetime format: 1292 Incorrect datetime value
487 0
|
10月前
DATE_FORMAT函数使用
DATE_FORMAT函数使用
301 0
|
关系型数据库 MySQL PostgreSQL
PSQLException: 错误: 函数 date_format(timestamp without time zone, unknown) 不存在
PSQLException: 错误: 函数 date_format(timestamp without time zone, unknown) 不存在
412 0
|
SQL 存储 分布式计算
Spark 3.0 对于 DATE 和 TIMESTAMP 的改进
本文将会深入介绍DATE和TIMESTAMP
Spark 3.0 对于 DATE 和 TIMESTAMP 的改进
|
存储 JavaScript 前端开发
new Date(dateString)
new Date(dateString)
128 0
new Date()
new Date()
127 0
|
Web App开发 JavaScript 前端开发
IE new Date()无效
IE 时间兼容