LINUX.ORG.RU

Соответствие дат клиент-сервер

 , , ,


1

2

День добрый господа. Дайте пожалуйста дельный совет, а то запутался в трёх соснах в решении задачи. Есть выборка данных по временному отрезку, отдаю с клиента на сервер два значения даты, чтобы по этому диапазону вытянуть данные. Писал, на локальном хосте и не учел вариант, который увидел после выезда на сервер: выбираю одни даты на клиенте, прилетают с сервера данные со смещением на два дня и так далее, понятное дело что на сервере Node при new Date выдает свою системную дату, но начал я решать эту проблему, решил использовать moment.js на сервере и приведение к Utc, с клиента помимо даты я отправляю еще utcOffset, но в moment увы не получается сформировать дату, такую же как на клиенте, даже используя utcOffset, подскажите пожалуйста как правильно решить эту проблему, или может просто примерчик как верно это решить?


- Время только в UTC (ты можешь в верстке вывести что угодно, но при этом еще передать таймстамп)
- Правится скриптом непосредственно на клиенте, например в теги добавляем `date-time=...`
- На случай, если надо на сервере сгенерить счразу правильную страничку, чтобы без яваскрипта - ставим куку с таймзоной, это начнет работать после второго клика. https://github.com/nodeca/nodeca.core/blob/master/client/common/system/timezo...

У меня кастомная фиговина https://github.com/nodeca/nodeca.core/blob/master/client/common/system/date/d..., moment не попер - наворочен там где не надо и слабоват там где требовалось.

Vit ★★★★★
()

прилетают с сервера данные со смещением на два дня

А где сервер стоит? Просто интересно. Не облака Магеллана, часом?

Простое решение — запрашивать перед отправкой на сервер диапазона текущее время сервера, потом подгонять и отправлять отрезок. Если уж UTC не подходит.

anonymous
()

проблема надумана - есть нормальная дата UTC, остальное это смещение

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.