Какой формат даты строки будет распознавать синтаксический анализ javascript? - PullRequest
5 голосов
/ 24 марта 2011

я знаю, что при создании объекта Date в javascript с параметром dateString строка должна быть чем-то, что parse() может распознать.

Какой формат даты может распознавать parse?

Например:

var postDate = new Date("2011-03-08T23:52:38");

работает в Chrome и Internet Explorer, но не работает на iPhone (возвращается 1 января 1970 г.).

Я не могу найти никакой формальной документации по методу .parse() или конструктору о том, каким должен быть параметр.

Формат yyyy-mm-ddThh:nn:ss не работает. Что является разрешенной строкой формата?

Ответы [ 2 ]

11 голосов
/ 24 марта 2011

Документация MDC Date.parse() сообщает (цитирование) :

Принимает стандарт IETF ( RFC 1123 Раздел 5.2.14 и др.) синтаксис даты:
"Mon, 25 Dec 1995 13:30:00 GMT".


OP Edit:

.NET синтаксис для создания этой строки даты и времени:

/*
 * r (RFC1123Pattern)
 *      ddd, dd MMM yyyy HH':'mm':'ss 'GMT'
 *      Mon, 15 Jun 2009 20:45:30 GMT
 */
dateTime.ToUniversalTime().ToString("r", CultureInfo.InvariantCulture); //"r" = RFC1123Pattern

Edit: r (шаблон RFC1123) всегдадобавляет «GMT», даже если время не GMT ​​(оно местное).Вам нужно сначала позвонить .ToUniversalTime(), чтобы время на самом деле было по Гринвичу.

0 голосов
/ 03 апреля 2014

Использование формата, созданного методом toJSON для Date, будет работать.Это то же самое, что и метод toIOSString.

Формат даты: ГГГГ-ММ-ДДТЧЧ: мм: ss.sssZ

Примечание. Часовой пояс всегда обозначается UTC, что обозначается суффиксом "Z".

var d = new Date();
console.log(d.toJSON());
console.log(d.toJSON() === d.toISOString());
console.log(Date.parse(d.toJSON()) === Date.parse(d.toISOString()));

Вы можете обнаружить, что показанная дата не совпадает с датой на ваших часах;помните, что часовой пояс UTC.

Ссылки:

Date.prototype.toJSON ()

Date.prototype.toISOString ()

...