2016-12-30 2 views
1

Мой клиент находится в Индии и на сервере в США. Если пользователь отправляет свой пост из Индии, он хранится на сервере США, поэтому, когда я показываю сообщение, отправляемое пользователю, это соответствует времени США. Я хочу показать его в соответствии с часовым поясом клиентовКак поддерживать часовую зону

+1

js даты не имеют часовой пояс, они просто цифры, поэтому вы должны просто переформатировать их. – dandavis

+0

Посмотрите, поможет ли это вам. http://stackoverflow.com/questions/41264307/how-to-handle-date-between-india-time-on-client-side-and-server-date-in-us-time/41265842#41265842 – Veeram

ответ

2

Самый простой способ обработки часовых поясов - работать с Epoch time за кулисами и переводить его в предпочтительный часовой пояс пользователя на рендеринг (или с клиентским кодом).

Время в Эпохе - количество секунд с момента создания 1 января 1970 года в Лондоне. Например, сейчас время составляет 1483130714. Это означает, что у нас есть одно простое число, которое можно легко сравнивать и сортировать, чтобы представлять точные моменты, не заботясь о датах, часовых поясах, локалях и их неутешительных деталях. Практически все языки в популярном использовании имеют возможность анализировать эти числа в свои собственные значения временных меток. В JavaScript вы можете сделать это с помощью new Date(1483130714). Вы получите объект даты, и затем можете представить, что вам нравится (например, с toLocaleString).

Если вы не используете время Epoch, вы хотите использовать UTC, следующее лучшее. Важно хранить в согласованном универсально понятном формате, а затем переводить его в предпочтительную форму пользователя по мере необходимости.

1

Вам нужно сохранить дату в UTC, а затем преобразовать ее в соответствии с культурой и часовым поясом браузера. Поэтому сохраняйте все даты в формате UTC и в зависимости от культуры браузера вы можете добавить смещение, это может быть сложно, если пользователь устанавливает неправильную культуру и время.

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