Razbezhkin
@Razbezhkin
программист, преподаватель

Как хранить дату и время с учетом часового пояса в sql server + C# и отображать через javascript?

Предположим, сайтом пользуются люди из разных часовых поясов (у них на компьютерах установлены разные часовые пояса). Сервер тоже находиться в каком-то определенном часовом поясе. Нам нужно хранить для строк таблицы какую-то дату события, например, дату создания строки в БД, и отображать ее на сайте через javascript с учетом его (пользователя) часового пояса.

Т.е. есть у нас строка создана в 9:38 по московскому времени, то в Екатеринбурге должно отображаться 11:38.

Как это организовать?
  • Вопрос задан
  • 43 просмотра
Пригласить эксперта
Ответы на вопрос 3
Razbezhkin
@Razbezhkin Автор вопроса
программист, преподаватель
Организовать это можно так:
1. Для столбца таблицы используем тип «datetimeoffset»
2. Чтобы присваивать через C#, используем тип данных DateTimeOffset и его свойство Now
3. Для передачи на клиент (например через ajax) используем стандартную сериализацию (например, через Newtonsoft.Json), получиться строка типа «2019-10-07T09:38:10.5016691+05:00», в которой указывается местное время (сервера) и его часовой пояс.
4. На клиенте эту строку используем для создания объекта даты, и выводим в локальном времени пользователя, например, так: (new Date(datestring)).toLocaleString()
Ответ написан
petermzg
@petermzg
Самый лучший программист
1. Хранить дату на сервере в UTC.
2. Передавать на клиентов в Unix Epoch
3. В Javascript преобразовывать "var date = new Date(unixtimestamp * 1000);"
Ответ написан
OnYourLips
@OnYourLips
Хранить дату на сервере в UTC
Передавать на клиентов в UTC в строковом представлении
В Javascript преобразовывать в ТЗ клиента.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы