检查 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
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论