В проекте, над которым я работаю, мне нужно проверить дату, введенную в <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.js
Как я могу это исправить, или есть лучший способ разобрать / проверить дату?