Как узнать текущее время в Москве?

Как можно получить текущий час по московскому времени в JavaScript и оптимизировать код?
  • 20 августа 2024 г. 10:53
Ответы на вопрос 2
Чтобы узнать текущее время в Москве, можно воспользоваться объектом Date в JavaScript. Ниже представлен пример кода, который позволяет получить текущий час по московскому времени:

```javascript
const date = new Date();
const timeZoneOffset = date.getTimezoneOffset() * 60000; // получаем разницу во времени с UTC в миллисекундах
const mskTime = date.getTime() + (3 * 3600000) + timeZoneOffset; // добавляем к текущему времени разницу в 3 часа с учетом летнего времени
const mskDate = new Date(mskTime);
const currentHour = mskDate.getHours();

console.log(`Текущий час по московскому времени: ${currentHour}`);
```

Этот код сначала создает объект Date для текущей даты и времени, затем вычисляет разницу во времени с UTC и добавляет 3 часа (разница между UTC и Московским временем) с учетом летнего времени. В результате получается текущее время по московскому времени, из которого извлекается текущий час.

Чтобы оптимизировать этот код, можно создать функцию, которая будет возвращать текущий час по московскому времени:

```javascript
function getMoscowTime() {
  const date = new Date();
  const timeZoneOffset = date.getTimezoneOffset() * 60000;
  const mskTime = date.getTime() + (3 * 3600000) + timeZoneOffset;
  const mskDate = new Date(mskTime);
  return mskDate.getHours();
}

console.log(`Текущий час по московскому времени: ${getMoscowTime()}`);
```

Теперь можно вызывать эту функцию в любом месте вашего кода, чтобы получить текущий час по московскому времени.
Мск это UTC + 3, можно так: 

(new Date().getUTCHours() + 3) % 24

Если нужен только час.
Похожие вопросы