@Barrakuda74

Как перевести utc время в локальное для каждого пользователя (на js)?

в MySQL хранится время в поле timestamp. время там сохранено в UTC.
При извлечении в PHP переменная уже выглядит так: "2018-07-31 14:50:45".
Теперь я хочу передать эту переменную в JS, и на стороне клиента чтобы уже в зависимости от часового пояса выводилось нужное время, т.е. в Москве напр. это будет - "2018-07-31 17:50:45".
Не приходилось что-то раньше со временем плотно работать, подскажет оптимальный способ без всяких тяжеловесных библиотек, я так понимаю можно всё штатными средствами сделать.

p.s.: если создавать дату в js через new Date(2018-07-31 14:50:45), то он к этому же времени приписывает мой часовой пояс, т.е. думает что это уже время в моём часовом поясе. А там-то UTC.
  • Вопрос задан
  • 1177 просмотров
Пригласить эксперта
Ответы на вопрос 2
@sdgroup14
Если у вас нет пользовательских настроек на сайте(в интерфейсе), в котором пользователь сам указывает часовой пояс и у вас в базе timestamp в 0, то new Date() преобразует в тот часовой пояс который выставлен в ОС.... Вам ничего не нужно делать. Если в обратном случае, я недавно работал с датами, и у меня были разные вариации дат(в нескольких форматах) - я преобразовывал все в UTC, а потом прибавлял выставленный пользователем часовой пояс:

var date = new Date(); 

var now_utc =  Date.UTC(date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate(),
 date.getUTCHours(), date.getUTCMinutes(), date.getUTCSeconds());

var user_timezone = '-3';
user_timezone = user_timezone * 3600000;
var user_date = new Date(user_timezone);
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы