如何检查一个对象是否是日期?
我在网页上有一个烦人的错误:“date.GetMonth()不是一个函数”。 所以我想我从某个地方做错了什么,并且对象日期不是Date类型的对象。 我如何检查Javascript中的数据类型? 我试图添加一个if(日期),但它不起作用。
function getFormatedDate(date) {
if (date) {
var month = date.GetMonth();
}
}
因此,如果我想写防御性代码并防止日期(不是一种)被格式化,我该怎么做?
谢谢!
更新:我不想检查日期的格式,但我想确保传递给方法getFormatedDate的参数的类型为Date。
作为通过鸭子打字的替代方法
typeof date.getMonth === 'function'
你可以使用instanceof
运算符,也就是说它也会在无效日期返回true,例如new Date('random_string')
也是Date的实例
date instanceof Date
如果对象通过帧边界传递,这将失败。
解决这个问题的方法是通过检查对象的类
Object.prototype.toString.call(date) === '[object Date]'
您可以使用以下代码:
(myvar instanceof Date) // returns true or false
该函数是getMonth()
,而不是GetMonth()
。
无论如何,您可以通过执行此操作来检查对象是否具有getMonth属性。 它并不一定意味着该对象是一个日期,只是具有getMonth属性的任何对象。
if (date.getMonth) {
var month = date.getMonth();
}
链接地址: http://www.djcxy.com/p/52189.html