Javascript-форум (https://javascript.ru/forum/)
-   Javascript под браузер (https://javascript.ru/forum/css-html/)
-   -   обратный отсчет на сутки (https://javascript.ru/forum/css-html/75156-obratnyjj-otschet-na-sutki.html)

javascrip 07.09.2018 15:39

обратный отсчет на сутки
 
например 23 дня 19:11:22 (часы, минуты, секунды)
только тут дату не нужно указывать, лучше просто обратный счетчик на сутки или на двое, а потом снова заново начинается...
или на 64 часа обратный отсчет и чтобы заново потом начинался

подскажите, если какое решение для этого?)

Nexus 07.09.2018 15:52

https://www.google.ru/search?q=javas...down+with+days
https://www.w3schools.com/howto/howto_js_countdown.asp

javascrip 07.09.2018 16:15

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

рони 07.09.2018 16:46

javascrip,
https://javascript.ru/forum/misc/408...tml#post274396

Nexus 07.09.2018 16:46

javascrip,
https://www.w3schools.com/code/tryit...e=FV2BHPHBYMVM

j0hnik 07.09.2018 18:21

<div class="time"></div>
	<script>
var x = 24*60*60*1000; // тоесть сутки 
down = document.querySelector('.time'),
now = new Date(),
end = new Date(2018, 8, 8);
while(end < now) end = end.valueOf() + x; // когда закончится добавятся еще X (сейчас сутки)

(function tick(){
	down.innerHTML ='';
	var now = new Date(),
	ost = new Date(end - now),
	s = Math.floor(ost/1000),
	m = Math.floor(s/60),
	h = Math.floor(m/60),
	d = Math.floor(h/24);
	s = s%60+'';
	m = m%60+'';
	h = h%24+'';
	d = d+'';
	d = d.length == 1 ? '0'+d:d;
	h = h.length == 1 ? '0'+h:h;
	m = m.length == 1 ? '0'+m:m;
	s = s.length == 1 ? '0'+s:s;

	down.innerHTML = d+' дней '+h+' часов '+m+' минут '+s+' секунд';
	if(ost>0) setTimeout(tick, 1000);
})();
	</script>

j0hnik 07.09.2018 18:26

javascrip,
если не указывать конечную дату, то про обновлении счетчик будет опять сутки отсчитывать, а это полагаю не то что нужно.

рони 07.09.2018 18:39

j0hnik,
:-?
<div class="time"></div>
    <script>
var x = 24*60*60*1000; // тоесть сутки
down = document.querySelector('.time'),
end = +new Date();

(function tick(){
    var ost = end - new Date();
    if(ost < 0) {end += x; ost = x};
    var s = Math.floor(ost/1000),
    m = Math.floor(s/60),
    h = Math.floor(m/60),
    d = Math.floor(h/24);
    s = s%60+'';
    m = m%60+'';
    h = h%24+'';
    d = d+'';
    d = d.length == 1 ? '0'+d:d;
    h = h.length == 1 ? '0'+h:h;
    m = m.length == 1 ? '0'+m:m;
    s = s.length == 1 ? '0'+s:s;

    down.innerHTML = d+' дней '+h+' часов '+m+' минут '+s+' секунд';
    requestAnimationFrame(tick)

})();
    </script>

j0hnik 07.09.2018 18:42

рони,
такие счетчики из серии "до конца акции осталось", и при обновлении страницы нужно не заново считать, а продолжать отсчет.

рони 07.09.2018 18:44

:)
<div class="time"></div>
    <script>
var x = 24*60*60*1000; // тоесть сутки
down = document.querySelector('.time'),
end = x;

function tick(e){
    var ost = end - e;
    if(ost < 0) {end = ost = x};
    var s = Math.floor(ost/1000),
    m = Math.floor(s/60),
    h = Math.floor(m/60),
    d = Math.floor(h/24);
    s = s%60+'';
    m = m%60+'';
    h = h%24+'';
    d = d+'';
    d = d.length == 1 ? '0'+d:d;
    h = h.length == 1 ? '0'+h:h;
    m = m.length == 1 ? '0'+m:m;
    s = s.length == 1 ? '0'+s:s;

    down.innerHTML = d+' дней '+h+' часов '+m+' минут '+s+' секунд';
    requestAnimationFrame(tick)

};
 requestAnimationFrame(tick)

    </script>


Часовой пояс GMT +3, время: 13:21.