То, что я пытаюсь сделать, - это несколько отсчетов с разными сроками годности.У меня есть фрагмент кода из Codepen, который я использовал в качестве отправной точки, которая работает только для одного обратного отсчета.Я также надеюсь, что независимо от того, находится ли зритель в Калифорнии или в Грузии, истечение срока действия будет знать, что такое часовой пояс.Я добавил предложенный getTimezoneOffset () для работы с разными часовыми поясами.Что заставляет обратный отсчет умножать оставшиеся дни до абсурдного числа, которое в будущем будет 50 лет.Когда я удаляю это, это нормально.Поэтому я не понял, как правильно реализовать это предложение.Через много проб и ошибок я успешно создал дубликат обратного отсчета с другой датой истечения срока действия.Единственное, чего я до сих пор не понимаю, - это как реализовать getTimezoneOffset (), чтобы он не отображал 17 893 и 17 883 дня (дней на 50 лет).Я модификатор javascript методом проб и ошибок.Я стараюсь, пока что-то не сломается.
var countDownDate = new Date("DEC 27, 2018").getTime();
var countDownDate2 = new Date("DEC 17, 2018").getTime();
// COPY FEED
var data = {
// OFFER 1
one: "Offer One",
two: "Free Product",
three: "Today Only",
// OFFER 2
four: "Offer Two",
five: "Free Pickup",
six: "<span id='daysLeft'></span> <span id='plural'></span>",
seven: "Expires: Dec. 27, 2018",
// OFFER 3
eight: "Offer Three",
nine: "<span id='daysLeft2'></span> <span id='plural2'></span>",
ten: "Expires: Dec. 17, 2018",
};
// LOOP THROUGH KEYS TO GET ALL ELEMENT IDs & CREATE VARIABLES
function bannerFunc() {
for (key in data) {
if (data.hasOwnProperty(key)) {
var value = data[key];
var key = document.getElementById('" + key + "');
}
}
// ASSIGN OBJECT VALUES TO VARIABLES
one.innerHTML = data.one;
two.innerHTML = data.two;
three.innerHTML = data.three;
four.innerHTML = data.four;
five.innerHTML = data.five;
six.innerHTML = data.six;
seven.innerHTML = data.seven;
eight.innerHTML = data.eight;
nine.innerHTML = data.nine;
ten.innerHTML = data.ten;
// DATE CODE
var x = setInterval(function() {
var now = new Date().getTimezoneOffset(),
amountLeft = countDownDate - now,
days = Math.floor(amountLeft / (1000 * 60 * 60 * 24) + 1),
plural = document.getElementById('plural');
plural.innerHTML = days + ' Days Left';
if( days < 2 && days > 0 ){
plural.innerHTML = days + ' Day Left';
}
if( days <= 0 ){
plural.innerHTML = 'Expired';
}
var now = new Date().getTimezoneOffset(),
amountLeft = countDownDate2 - now,
days = Math.floor(amountLeft / (1000 * 60 * 60 * 24) + 1),
plural = document.getElementById('plural2');
plural2.innerHTML = days + ' Days Left';
if( days < 2 && days > 0 ){
plural2.innerHTML = days + ' Day Left';
}
if( days <= 0 ){
plural2.innerHTML = 'Expired';
}
}, 1000);
}
bannerFunc();