Как получить дату в js с нужным utc (+3)?
Нужно чтобы время возвращалась с +3 часа по utc
Ответы (1 шт):
Автор решения: Denis640Kb
→ Ссылка
Суть заключается в том, что js берём время не с сервера, а с компьютера пользователя.
Соответственно, если пользователь изменит время на компьютере/смартфоне/планшете, или оно установлено у него не корректно, то и данные Вы получите не корректные.
В Вашем случае, Вы можете использовать получение времени с сервера через php, другого ЯП, или фреймворка и так далее, либо получать мировое время по API
Добавил пример реализации с комментариями для понимания работы скрипта:
let plus = 3; // Сколько времени прибавляем
var xhr = new XMLHttpRequest();
xhr.open('GET', 'http://worldtimeapi.org/api/timezone/Europe/London', false); // Делаем запрос по Лондону
xhr.send(); // отправляем
if (xhr.status != 200) {
console.log( xhr.status + ': ' + xhr.statusText ); // Если статус не равен 200, то выводим ошибку.
} else {
let time = xhr.responseText; // получаем текст ответа
let z = JSON.parse(time).utc_datetime; // Получаем время utc
let time1 = new Date(z).getTime(); // Переводим в timestamp
let timestampPlus = time1 + (plus * 60 * 60 * 1000); // Воемя +3 часа
let timePlus = new Date(timestampPlus); // Переводим во время (Тут надо понимать, что система сама переведёт его в текущую временную зону
let result = timePlus.toUTCString(); // Переводим в строку UTC;
console.log(result); // Выводим дату.
}