小编典典

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

all

我在网页上有一个烦人的错误:

date.GetMonth() 不是函数

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

function getFormatedDate(date) {
    if (date) {
       var month = date.GetMonth();
    }
}

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

谢谢!

更新: 我不想检查日期的格式,但我想确保传递给方法的参数getFormatedDate()是 type Date


阅读 125

收藏
2022-03-02

共1个答案

小编典典

作为鸭子打字的替代方法

typeof date.getMonth === 'function'

您可以使用instanceof运算符,即但它也会为无效日期返回 true,例如new Date('random_string')也是 Date
的实例

date instanceof Date

如果对象跨越帧边界,这将失败。

解决方法是通过检查对象的类

Object.prototype.toString.call(date) === '[object Date]'
2022-03-02