IE11, имеет ограниченную поддержку форматирования даты при использовании опции часового пояса, в основном единственная допустимая опция - UTC
.Не очень полезный.
Два варианта, которые я могу придумать.
- Используйте моментальные моменты, это хорошая библиотека времени и даты, но она может быть излишней
- Использовать pollyfill
Ниже приведен фрагмент кода, который заполняет локальный часовой пояс, и создает простые мировые часы с несколькими зонами.
Если вы используете современный браузер, вам следуетв состоянии удалить тег сценария при запуске, и он продолжит работать.
Обновление: теперь это работает в IE11, важен регистр при выполнении локали с полифилом.например.Europe/Amsterdam
хорошо, но europe/amsterdam
нет, с Chrome это не имеет значения.
//var d = new Date(); var dUK = d.toLocaleString('en-GB', { timeZone: 'America/Chicago' }); console.log(dUK);
function updateTimes() {
var dt = new Date();
var els = document.querySelectorAll("[data-tz]");
for (var l = 0; l < els.length; l ++) {
var d = els[l];
d.innerText = dt.toLocaleString('en-GB', {timeZone: d.dataset.tz});
}
}
updateTimes();
setInterval(updateTimes, 1000);
<script src="https://unpkg.com/date-time-format-timezone@latest/build/browserified/date-time-format-timezone-complete-min.js"></script>
<p>Simple world time clocks</p>
<div><span data-tz="Europe/London"></span>
- London
</div>
<div>
<span data-tz="Europe/Amsterdam"></span>
- Amsterdam
</div>
<div>
<span data-tz="America/Chicago"></span>
- Chicago
</div>