Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/432.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
有没有办法在JavaScript中检查变量是否为日期?_Javascript_Date_Typechecking - Fatal编程技术网

有没有办法在JavaScript中检查变量是否为日期?

有没有办法在JavaScript中检查变量是否为日期?,javascript,date,typechecking,Javascript,Date,Typechecking,我想知道是否有任何方法可以检查对象在JavaScript中是否是特定的日期。isType返回日期对象,这对于这种情况是不够的。有什么想法吗?谢谢 使用instanceof (myvar instanceof Date) // returns true or false Object.prototype.toString.call(obj)==“Object Date]”在任何情况下都有效,obj instanceof Date将仅在同一视图实例(窗口)中的日期对象中有效。if(obj&&obj

我想知道是否有任何方法可以检查对象在JavaScript中是否是特定的日期。isType返回日期对象,这对于这种情况是不够的。有什么想法吗?谢谢

使用instanceof

(myvar instanceof Date) // returns true or false

Object.prototype.toString.call(obj)==“Object Date]”
在任何情况下都有效,
obj instanceof Date
将仅在同一视图实例(
窗口
)中的日期对象中有效。

if(obj&&obj.getUTCDay){ //我会把它当作约会
}

Hmm如果您有从Date继承的东西,这将不起作用,是吗?Ext JS就是这样做的。不确定其他框架,但这正是我要看的。@Claudiu:不,但老实说,我认为您永远不需要创建继承自
Date.prototype
…,@bmoeskau的对象实例,这是检测由内置构造函数(如
Array
RegExp
)生成的对象类型的最安全的方法,
日期
等。。。其他框架,比如jQuery,也使用它来检测被包装的原语值,因为这些包装是对象,例如,
typeof new String(“”==“object”)以及用于检测Opera。如果它继承自Date,则它是一个Date对象。这似乎是一个非常好的答案!对
d.constructor.name
进行测试不是更好吗?如果在一个完全不相关的对象上碰巧有一个名为“getUTCDay”的类似方法,那么对于
obj
这将返回true,即使它不是日期。或者更可能的是,如果有人在您的代码库中的某个地方编写了getUTCDay方法,他们将在某个时候进行一个漫长的下午的调试;)我假设您意识到这与检查日期对象类型不同,这似乎是个问题?噢!!我误解了这个问题=/my badIt适用于大多数情况,但在多帧DOM环境中会失败,请看一看。我用“无效日期”测试了它,结果返回true!!在我的例子中,我在日期字段中使用了DHTMLX日历类型,但这并没有像预期的那样起作用。
if (parseDate("datestring"))