@grenline123123

Как привязать обратный отсчет к конкретному товару?

Нужно на странице списка товаров показывать таймер окончания акции, как мне код который ниже переделать так чтобы он отдельно работал для каждого из товаров, так как у каждого свое время

var countDownDate = new Date("July 1, 2021 04:00:00").getTime();

    var x = setInterval(function() {

    var now = new Date().getTime();
        
    var distance = countDownDate - now;
        
    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);
        
    document.getElementById("demo").innerHTML = days + "д " + hours + "ч "
    + minutes + "м " + seconds + "с ";
        
    if (distance < 0) {
        clearInterval(x);
    }
    }, 1000);
  • Вопрос задан
  • 74 просмотра
Пригласить эксперта
Ответы на вопрос 1
Medovnik
@Medovnik
let countDownDate_1 = new Date("July 1, 2021 04:00:00").getTime();
		let countDownDate_2 = new Date("July 1, 2021 04:00:00").getTime();
		let countDownDate_3 = new Date("July 1, 2021 04:00:00").getTime();


		const timer = (date) => {
			let now = Date.now();

			let distance = date - now;

			let days = Math.floor(distance / (1000 * 60 * 60 * 24));
			let hours = Math.floor((distance % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));
			let minutes = Math.floor((distance % (1000 * 60 * 60)) / (1000 * 60));
			let seconds = Math.floor((distance % (1000 * 60)) / 1000);

			document.getElementById("demo").innerHTML = days + "д " + hours + "ч "
				+ minutes + "м " + seconds + "с ";

			if (distance < 0) {
				clearInterval(x);
			}
		}

		let x = setInterval(function () {
			timer(countDownDate_1);
			timer(countDownDate_2);
			timer(countDownDate_3);
		}, 1000);


Также, можно, чтобы не запускать много раз timer, сделать это с помощью цикла. Т.е., пройти циклом по всем товарам и запустить timer.
Ответ написан
Ваш ответ на вопрос

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

Похожие вопросы