2010-05-14 11 views

Respuesta

103

Uso de instanceof

(myvar instanceof Date) // returns true or false 
+7

Se trabajará para la mayoría de los casos * *, pero se producirá un error en múltiples cuadros Entornos DOM, eche un vistazo a [este artículo] (http://perfectionkills.com/instanceof-considered-harmful-or-how-to-write-a-robust-isarray/). – CMS

+1

¡Lo probé con una "Fecha inválida" y volvió verdadero !! – Roshdy

+0

Esto no está funcionando como esperaba en mi caso en el que he usado el tipo de calendario DHTMLX en el campo de fecha. – lnepal

30

Object.prototype.toString.call(obj) === "[object Date]" funcionará en todos los casos, y obj instanceof Date sólo funcionará en los objetos de fecha de la misma instancia de vista (window).

+0

Hmm esto no funcionará si tienes algo que hereda de Date, ¿o sí? – Claudiu

+0

Así es como Ext JS lo hace. No estoy seguro sobre otros marcos, pero eso es lo que miraría. –

+2

@Claudiu: No, pero sinceramente, creo que nunca necesitarás crear una instancia de objeto que herede de 'Date.prototype' ..., @bmoeskau, esta es la forma más segura de detectar el * kind * de un objeto hecho por los constructores incorporados como 'Array',' RegExp', 'Date', etc ... otros marcos, como jQuery usan esto para [detectar objetos' Array'] (http://api.jquery.com/ jQuery.isArray /), [Prototype] (http://www.prototypejs.org/api/object/isstring) también lo utilizan para esto y para detectar valores primitivos envueltos, ya que esos wrappers son objetos, por ejemplo 'typeof new String (" ") == 'object';' y también para detectar Opera. – CMS

0

si (obj & & obj.getUTCDay) {// voy a tratar como si fuera una Fecha }

+0

Si tiene un método similar llamado "getUTCDay" en un objeto completamente no relacionado, esto devolverá verdadero para 'obj' incluso si no es una Fecha. –

+0

O más probable, si alguien * después de * escribe un método getUTCDay en algún lugar de su código base, tendrá una agradable larga tarde de depuración en algún momento;) –

-3
if (parseDate("datestring")) 
+1

Supongo que se da cuenta de que esto no es lo mismo es verificar un tipo de objeto Fecha, que parece ser la pregunta? –

+0

oooh !! No entendí la pregunta =/mi mal – GerManson

Cuestiones relacionadas