@Nebeika

Режимы работы фирмы на сайте?

Есть js который вывод режим работы организации. Сейчас он определяет время работы по браузеру клиента без учета часового пояса.
Как сделать что-бы режим работы отображался по мск времени и не учитывал время по браузеру?
Код
$(document).ready(function () {

	var data = {
		0: [
			[9, 13, "", '<div class="worktime">Сегодня мы работаем с 09:00 до 13:00 <span class="msk">мск</span></div>'],
			[13, 9, "", '<div class="worktime disabled">Закрыто до 09:00 <span class="msk">мск</span></div>']
		],
		1: [
			[9, 18, "", '<div class="worktime">Сегодня мы работаем с 09:00 до 18:00 <span class="msk">мск</span></div>'],
			[18, 9, "", '<div class="worktime disabled">Закрыто до 09:00 <span class="msk">мск</span></div>']
		],
		2: [
			[9, 18, "", '<div class="worktime">Сегодня мы работаем с 09:00 до 18:00 <span class="msk">мск</span></div>'],
			[18, 9, "", '<div class="worktime disabled">Закрыто до 09:00 <span class="msk">мск</span></div>']
		],
		3: [
			[9, 18, "", '<div class="worktime">Сегодня мы работаем с 09:00 до 18:00 <span class="msk">мск</span></div>'],
			[18, 9, "", '<div class="worktime disabled">Закрыто до 09:00 <span class="msk">мск</span></div>']
		],
		4: [
			[9, 18, "", '<div class="worktime">Сегодня мы работаем с 09:00 до 18:00 <span class="msk">мск</span></div>'],
			[18, 9, "", '<div class="worktime disabled">Закрыто до 09:00 <span class="msk">мск</span></div>']
		],
		5: [
			[9, 18, "", '<div class="worktime">Сегодня мы работаем с 09:00 до 18:00 <span class="msk">мск</span></div>'],
			[18, 9, "", '<div class="worktime disabled">Закрыто до 09:00 <span class="msk">мск</span></div>']
		],
		6: [
			[9, 13, "", '<div class="worktime">Сегодня мы работаем с 09:00 до 13:00 <span class="msk">мск</span></div>'],
			[13, 9, "", '<div class="worktime disabled">Закрыто до 09:00 <span class="msk">мск</span></div>']
		]
	};

	function getEventByDay(base, day, hour) {
		var obj = base[day],
			len = obj.length;

		for (var i = 0; i < len; i++) {
			var resp = obj[i];
			if (hour >= resp[0] && hour < resp[1]) break;
		}
		return resp;
	}

	function setupEvent(into, base) {
		var d = new Date(),
			day = d.getDay(),
			h = d.getHours(),
			resp = 'n/a';

		var data = getEventByDay(base, day, h);

		resp = '' + data[3] + '';

		document.getElementById(into).innerHTML = resp;
	}


	setupEvent('worktime-date', data);
	setInterval(setupEvent('worktime-date', data), (1000 * 60 * 5));

});
  • Вопрос задан
  • 133 просмотра
Решения вопроса 1
@magarif
Программист
function setupEvent(into, base) {
  const d = new Date();
  const mskTimeZone = - 3 * 60; // в минутах

  let timezone = d.getTimezoneOffset();
  if (timezone !== mskTimeZone) {
    timezone = timezone - mskTimeZone;
    d.setTime(d.getTime() + timezone * 60 * 1000);
  }

  const day = d.getDay();
  const h = d.getHours();
  let resp = 'n/a';

  const data = getEventByDay(base, day, h);

  resp = '' + data[3] + '';
  document.getElementById(into).innerHTML = resp;
}
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через TM ID
Похожие вопросы
CS Money Санкт-Петербург
от 120 000 до 150 000 руб.
Digital Sharks Казань
от 60 000 до 65 000 руб.
Alternativa Games Пермь
от 40 000 до 80 000 руб.