2017-02-06 10 views
1

Я делаю мессенджер, и мне нужно отображать время сообщений в пользовательском часовом поясе. В настоящее время у меня разные времена от сообщений сервера и клиентских сообщений из-за часового пояса.Как отображать местное время (учитывая часовой пояс)?

Когда сообщение создается на поле клиента даты и времени равно новый Date():

function Message(sender) { 
    ... 
    this["datetime"] = new Date(); 
    ... 

Когда сообщение получено из поля даты и времени сервера является CTime, который пришел с сервера. И этот код отображает время сообщение:

chatMessageTime.innerHTML = new Date(message["datetime"]).toLocaleString("ru", { 
    "hour": "numeric", 
    "minute": "numeric" 
    }); 

И, как я уже говорил, в результате у меня раз в разных часовых поясах. Как решить эту проблему? Как отображать часовой пояс для всех сообщений?

+0

Таким образом, сервер хранит время в разных часовых поясах или вы преобразовываете их все в серверное время раньше? – Zze

+0

@Zze Сервер хранит данные в формате unix time. –

+0

@charlietfl Так это проблема сервера? Должен ли сервер хранить данные в UTC не в формате времени Unix? –

ответ

0

В JavaScript даты автоматически отображаются на текущем языке пользователя: Для т.е. дата "5 февраля 2017 23:08:23 GMT-0300" отображается как «Mon Feb 06 2017 00:08:23 GMT. -0200 "в моем браузере.

console.log(new Date('Sun Feb 05 2017 23:08:23 GMT-0300')); 
+0

Не обязательно, вывод * Date.prototype.toString * полностью зависит от реализации, хотя большинство браузеров, по крайней мере, похоже, остановились на версии [* RFC2822 *] (http://tools.ietf.org/html /rfc2822#section-3.3). Тем не менее, такие вещи, как индикаторы часовых поясов, неуклонно поддерживаются. SO-консоль, похоже, всегда использует ISO 8601 с UTC, поэтому никакой локализации вообще не существует. – RobG

+0

Okey, спасибо всем за помощь. Я решил использовать хак. Во время инициализации чата я вычисляю разницу между временами и просто использую его для отображения localtime. –

 Смежные вопросы

  • Нет связанных вопросов^_^