Как установить время в JS-таймере с учетом часового пояса Москвы?

Как я могу изменить код таймера, чтобы установить конечное время, используя часовой пояс Москвы, к примеру, чтобы таймер отсчитывал время до 18:00 26 мая по московскому времени?
  • 18 марта 2024 г. 20:19
Ответы на вопрос 2
Для установки времени в JS-таймере с учетом часового пояса Москвы, можно воспользоваться объектом Date и методами getTimezoneOffset() и setHours():

```javascript
// Создаем объект с текущей датой и временем
const currentDate = new Date();

// Получаем разницу в минутах между UTC и местным временем
const offset = currentDate.getTimezoneOffset();

// Устанавливаем часовой пояс Москвы (UTC+3)
currentDate.setHours(currentDate.getHours() + 3 + offset / 60);

// Устанавливаем конечную дату и время (18:00 26 мая)
const endTime = new Date('2023-05-26T18:00:00');

// Вычисляем разницу в миллисекундах между текущим временем и конечным временем
const difference = endTime.getTime() - currentDate.getTime();

// Начинаем отсчет времени
const timer = setInterval(() => {
  // Обновляем текущую дату и времю
  const currentDate = new Date();

  // Вычисляем разницу между текущим временем и конечным временем
  const difference = endTime.getTime() - currentDate.getTime();

  // Если разница меньше или равна нулю, останавливаем таймер
  if (difference <= 0) {
    clearInterval(timer);
    console.log('Таймер завершен');
  }

  // Выводим оставшееся время
  console.log(`Оставшееся время: ${Math.floor(difference / (1000 * 60 * 60))} часов ${Math.floor((difference % (1000 * 60 * 60)) / (1000 * 60))} минут ${Math.floor((difference % (1000 * 60)) / 1000)} секунд`);
}, 1000);
```

Этот код устанавливает таймер, который отсчитывает время до 18:00 26 мая по московскому времени. Пожалуйста, обратите внимание, что в примере используется текущая дата и время, а не фиксированные значения.
Похожие вопросы