Когда передается один строковый аргумент, это строковое представление даты в формате, принятом методом Date.parse(). Конструктор Date (dateString) принимает строки даты форматирования RFC822 и ISO 8601.
Примеры строк даты в формате RFC822 включают «Пн, 15 авг. 2005 15:52:01 EDT +0000», «25 декабря 2010 г. 6:00:00 am» и «15 августа 2005». Обратите внимание, что поставка двухзначного года, как в «Mon, 15 Aug 05 15:52:01», не будет работать в JavaScript! Международная спецификация ISO (ISO 8601) определяет формат «YYYY-MM-DD», который устраняет неоднозначность, вызванную форматами dd/mm/yy и mm/dd/yy. Например, с использованием международного формата «3 апреля 2002 года» будет выражаться как «2002-04-03».
Конструкторы даты и функция ошибки Date.parse() вылетают. Вместо этого они приводят к значению NaN. Мы можем использовать это для проверки действительности даты. Ниже функции, которые могут быть применены к любой строке, чтобы определить, является ли или не представляет это приемлемый формат даты:
String.prototype.isValidDate = function isValidDate() {
return !isNaN(Date.parse(this));
}
Таким образом, кажется дата новой даты() с параметром строки не являются допустимыми в соответствии как RFC822 и ISO 8601.
Это потому, что JS читает дату в «мм-дд-гггг». Всегда старайтесь «yyyy-mm-dd» – Rajesh
@ Rajesh-no, не делайте этого. Вручную разбирайте строки или используйте библиотеку, не доверяйте Дате для синтаксического анализа строк. – RobG