Я хотел бы сказать разницу между допустимыми и недопустимыми объектами даты в JS, но не мог понять, как:
var d = new Date("foo");
console.log(d.toString()); // shows 'Invalid Date'
console.log(typeof d); // shows 'object'
console.log(d instanceof Date); // shows 'true'
Любые идеи для написания функции isValidDate
?
- Пепел рекомендуется
Date.parse
для синтаксического анализа строк даты, что дает достоверный способ проверить правильность строки даты. - Я бы предпочел, если это возможно, заставить мой API принять экземпляр Date и проверить/подтвердить, является ли он действительным или нет. Решение Borgar делает это, но мне нужно проверить его в браузерах. Я также задаюсь вопросом, есть ли более элегантный способ.
- Ash заставил меня подумать о том, что мой API не принимает экземпляры
Date
вообще, это было бы проще всего проверить. - Borgar предложил тестирование экземпляра
Date
, а затем тестирование значения времениDate
. Если дата недействительна, значение времениNaN
. Я проверил с ECMA-262, и это поведение находится в стандарте, и именно это я и ищу.