Этот код для таймера обратного отсчета взят из W3Schools:
// Set the date we're counting down to
var d = new Date();
var n = d.getTimezoneOffset() * 60000;
var countDownDate = new Date("May 2, 2018 15:54:25").getTime();
// Update the count down every 1 second
var x = setInterval(function() {
// Get todays date and time
var now = new Date().getTime();
// Find the distance between now an the count down date
var distance = countDownDate - now - n;
// Time calculations for days, hours, minutes and seconds
var days = Math.floor(distance / (1000 * 60 * 60 * 24));
var hours = Math.floor((distance % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));
var minutes = Math.floor((distance % (1000 * 60 * 60)) / (1000 * 60));
var seconds = Math.floor((distance % (1000 * 60)) / 1000);
// Output the result in an element with id = "demo"
document.getElementById("demo").innerHTML = days + "d " + hours + "h "
+ minutes + "m " + seconds + "s ";
// If the count down is over, write some text
if (distance < 0) {
clearInterval(x);
document.getElementById("demo").innerHTML = "EXPIRED";
}
}, 1000);
С этим была большая проблема: любая дата, которую я ввожу, не будет работать для разных часовых поясов, как если бы это было +1 час по всемирному координированному времени, она истекла, а если бы она была -1, это был бы час.
Поэтому я добавил d.getTimezoneOffset() * 60000;, чтобы получить разницу в миллисекундах, а затем снял его, поэтому, если есть разница, он должен ее вычислить.
Всегда ли будет работать, если я поставлю дату в формате UTC в будущем, или есть возможная разница, о которой я не знаю (например, особая страна или летнее время, которые могут испортить это)?
Это не проблема, я просто хочу знать о смещении часового пояса и любых возможных причудах, которые у него могут быть (не обзор кода)
@ochi Вы не читали комментарий над вашим? OP явно не ищет обзор. Это может быть не по теме для Stack Overflow, но это не значит, что это актуально для Code Review.
@everyone Судя по всему, что я тестировал, все работает со многими разными часовыми поясами в моей локальной системе (если дата является датой в формате UTC), но если бы было сказано, что летнее время было бы что-нибудь испортить?



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


@KevinBoucher По вопросу код пришел из w3schools. По лицензионным, моральным и процедурным причинам мы не можем проверять код, написанный другими программистами. Мы ожидаем, что OP, как автор, поймет, почему код написан именно так. Пожалуйста, взгляните на Справочный центр Code Review.