Вы хотите посмотреть на это: Как узнать, является ли объект датой или нет с помощью JavaScript
В основном "самый безопасный" - не 100% отказоустойчивый, но с вами все должно быть в порядке- обнаружение функции.
Однако убедитесь, что ваша запись JSON действительно является объектом даты, а не строкой, в этом случае это не сработает, и вам нужно будет использовать new Date()
или Date.parse()
, чтобы сделать его объектом даты.
РЕДАКТИРОВАТЬ: После ваших 2 комментариев:
JSON не позволяет хранить объекты в формате даты.Итак, здесь уже есть расхождение.Либо вы на самом деле не имеете дело с объектами JSON, либо не имеете с ними дела такими, какими они должны быть.
На этой странице приведена официальная документация по использованию JSON в JavaScript дляинформация о том, как использовать параметр reviver в JSON.parse, потому что дата должна быть сохранена в виде строки, а затем «восстановлена» в объект Date.
Кроме того, этот тип возвращаемого объекта не обязательно означает, чтовы не имеете дело со строкой, например:
typeof new String("test") // object
Теперь, предполагая, что у вас действительно есть объект Date на данный момент, я не вижу, как в любом случае будет работать тестирование на value[key].Date
.Попробуйте это в своей консоли отладки, так как у вас есть FireBug:
var t = new Date();
alert(t.Date) // undefined
alert(t.getMonth) // code of the function, so not undefined
alert(typeof t.getMonth != 'undefined') // true
Так что использование комбинации тестов для getMonth
, getDay
и других сделало бы свое дело.