Javascript DateTime - тот же формат, что и сервер - PullRequest
0 голосов
/ 01 марта 2012

У меня есть вызов ajax, который возвращает datetime. Javascript отображает его, используя часовой пояс клиента. Я не нуждаюсь ни в каком часовом поясе клиента, я хочу показать дату и время так же, как возврат сервера. Возможно ли это?

Я получаю дату через:

var d = eval('new' + date.replace(/\//g, ' '));

1 Ответ

1 голос
/ 01 марта 2012

Во-первых, нет смысла использовать eval здесь (или почти везде), и, как правило, много причин не использовать.

JavaScript имеет только «местное» время (часовой пояс клиента) и UTC (универсальное скоординированное время, по сути то же самое, что и время по Гринвичу). Поэтому лучше всего ставить обычно , чтобы сервер отправил вам время в формате UTC. Но в вашем случае, поскольку вы хотите отобразить дату в часовом поясе сервера, на самом деле не имеет значения, думает ли JavaScript, что дата указана по местному времени или по времени сервера, и можно отправить ее в часовой пояс сервера.

Обратите внимание, что при разборе строк дат JavaScript только недавно (по состоянию на ECMAScript5) получил стандартный формат для строк дат, который является упрощенной версией ISO-8601. Подробности здесь . Обратите внимание, что некоторые старые браузеры пока не поддерживают этот формат.

Невозможно предложить гораздо больше рекомендаций без примера того, что вы пытаетесь разобрать.

Мне кажется, что предложение Диодея также имеет большой смысл: если вы хотите, чтобы дата отображалась в часовом поясе и формате сервера, просто отобразите указанную вами строку, не интерпретируя ее (опять же, в зависимости от того, что строка выглядит так: я не могу сразу найти подходящий формат, который бы работал с вашим опубликованным кодом).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...