如何检查对象是否为日期?

我在网页上发现了一个恼人的错误:

date.GetMonth()不是函数

所以,我想我做错了什么。变量date不是date类型的对象如何在Javascript中检查数据类型?我试图添加一个if(date),但它不起作用

函数GetFormattedDate(日期){
若有(日期){
var month=date.GetMonth();
}
}

所以,如果我想编写防御代码并阻止格式化日期(不是一个),我该怎么做

谢谢

更新:我不想检查日期的格式,但我想确保传递给方法getFormattedDate()的参数类型为date

作为通过

typeof date.getMonth==='function'

您可以使用instanceof运算符,也就是说,对于无效日期,它也将返回true,例如newdate('random_string')也是日期的实例

日期实例日期

如果对象跨帧边界传递,则此操作将失败

解决这个问题的一个办法是通过检查对象的类

Object.prototype.toString.call(日期)=='[对象日期]'

发表评论