【Js】檢查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對象

  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

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章