Реализация функции вывода времени в разных городах по их часовому поясу.

/*
Calculate local time in a different cities
by [www.m5-web.com]
*/
function calcTime(city, offset, html_id, display_city) {
  // create Date object for current location
  var date = new Date();

  // convert to msec, add local time zone offset, get UTC time in msec
  var utc = date.getTime() + (date.getTimezoneOffset() * 60000);

  // create new Date object for different city using supplied offset
  var newDate = new Date(utc + (3600000 * offset));

  var hours = newDate.getHours();
  var hours = ("0" + hours).slice(-2);

  var minutes = newDate.getMinutes();
  var minutes = minutes < 10 ? minutes = "0" + minutes : minutes;

  var seconds = newDate.getSeconds();
  var seconds = ("0" + seconds).slice(-2);

  if (display_city === true) {
    var time_str = "<strong>[" + city + "]</strong> " + hours + ":" + minutes + ":" + seconds;
  } else if (display_city === false) {
    var time_str = hours + ":" + minutes + ":" + seconds;
  } else {
    var time_str = "argument <em>display_city</em> must be <em>true</em> or <em>false</em>";
  }

  document.getElementById(html_id).innerHTML = time_str;
}

setInterval(function() {
  calcTime('Stavropol', '+3', 'time_stavropol', true)
}, 1000);

setInterval(function() {
  calcTime('Moscow', '+3', 'time_moscow', false)
}, 1000);

setInterval(function() {
  calcTime('Ekaterinbug', '+5', 'time_ekaterinburg', true)
}, 1000);

setInterval(function() {
  calcTime('Dubai', '+4', 'time_dubai', true)
}, 1000);

setInterval(function() {
  calcTime('Dubai', '+4', 'time_err', 'some bull sh*t')
}, 1000);

setInterval(function() {
  calcTime('Montreal', '-8', 'time_mountreal', true)
}, 1000);

<h2 id="time_stavropol"></h2>    
<h2 id="time_ekaterinburg"></h2>
<h2 id="time_moscow"></h2>
<h2 id="time_dubai"></h2>    
<h2 id="time_mountreal"></h2>    
<h2 id="time_err"></h2>

See the Pen Calculate time for different cities by DeN (@m5studio) on CodePen.

Теги: JavaScript

Выразить благодарность

Если эта публикация оказалась для Вас полезной и вы хотите выразить свою благодарность, сделайте пожалуйста её репост в социальных сетях или на своём сайте.

Так же, Вы можете перевести любую сумму, которую посчитаете нужной на наш счёт, что сильно мотивирует к написанию новых полезных статей.

Комментарии: