Как получить дату в 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); // Выводим дату.
    }

→ Ссылка