В проекте, над которым я работаю, мне нужно проверить дату, введенную в <input type="date">
В Safari 4/5 (на Mac OSX) Javascript не выполняет синтаксический анализ дат формата YYYY-MM-DD
, возвращая NaN
вместо ожидаемой метки времени.
Я использую следующий метод для проверки поля непосредственно перед отправкой формы:
//value = '2010-06-21'
var stamp = Date.parse(value);
if (isNaN(stamp)) {
//notify user
} else {
value = new Date(stamp).format_mysql();
}
Где format_mysql()
- это прототипная функция, которая форматирует дату (правильно) в формате MySQL Date-Time (YYYY-MM-DD).
Замена -
на /
(YYYY/MM/DD) дает "правильную" временную метку.
Я должен заметить, что поле должно принимать любой формат даты, а не только YYYY-MM-DD, и что, хотя я бы хотел, я не могу использовать библиотеки типа Date.js
Как я могу это исправить или есть лучший способ проанализировать/подтвердить дату?