Наследственные даты:
Любое нераспознанное слово перед первым номером игнорируется.
Текст в скобках игнорируется.
Число без знака, за которым следует «:», является значением времени и добавляется в TimeComposer. Число, за которым следует '::', также добавляет второй ноль. Номер, за которым следует «.» также время и должно сопровождаться миллисекундами.
Любой другой номер является компонентом даты и добавляется в DayComposer. Название месяца (или на самом деле: любое слово, имеющее те же первые три буквы, что и название месяца) записывается как названный месяц в Компоновщике дня. Слово, распознаваемое как часовой пояс, записывается как таковое, как (+|-)(hhmm|hh:)
.
Устаревшие даты не допускают дополнительных знаков ('+' или '-') или не совпадают ')' после того, как число было прочитано (перед первым числом разрешен любой мусор).
Пересечение двух: строка, которая соответствует обоим форматам (например, 1970-01-01), будет проанализирована как строка даты и времени ES5 - что означает, что по умолчанию используется часовой пояс UTC. Это неизбежно, если следовать спецификации ES5.
После считывания действительной буквы "T" во время сканирования строки даты и времени ES5 ввод больше не может быть действительной устаревшей датой, поскольку после считывания числа "T" является строкой мусора.
Другими словами: это поведение на самом деле не запланировано, просто некоторые браузеры иногда так себя ведут, и поэтому это странное поведение необходимо сохранить. Date(...)
постарается разобрать практически все что угодно без жалоб.