07.09.2018, 15:39
|
Аспирант
|
|
Регистрация: 29.08.2018
Сообщений: 46
|
|
обратный отсчет на сутки
например 23 дня 19:11:22 (часы, минуты, секунды)
только тут дату не нужно указывать, лучше просто обратный счетчик на сутки или на двое, а потом снова заново начинается...
или на 64 часа обратный отсчет и чтобы заново потом начинался
подскажите, если какое решение для этого?)
|
|
07.09.2018, 15:52
|
Профессор
|
|
Регистрация: 04.12.2012
Сообщений: 3,795
|
|
|
|
07.09.2018, 16:15
|
Аспирант
|
|
Регистрация: 29.08.2018
Сообщений: 46
|
|
видел я их, они все с до указанной даты, а мне скорее всего нужен просто обратный отчет времени, 24 часа хотя бы
|
|
07.09.2018, 16:46
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,126
|
|
|
|
07.09.2018, 16:46
|
Профессор
|
|
Регистрация: 04.12.2012
Сообщений: 3,795
|
|
|
|
07.09.2018, 18:21
|
|
Профессор
|
|
Регистрация: 01.12.2016
Сообщений: 3,650
|
|
<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:24.
|
|
07.09.2018, 18:26
|
|
Профессор
|
|
Регистрация: 01.12.2016
Сообщений: 3,650
|
|
javascrip,
если не указывать конечную дату, то про обновлении счетчик будет опять сутки отсчитывать, а это полагаю не то что нужно.
|
|
07.09.2018, 18:39
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,126
|
|
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>
|
|
07.09.2018, 18:42
|
|
Профессор
|
|
Регистрация: 01.12.2016
Сообщений: 3,650
|
|
рони,
такие счетчики из серии "до конца акции осталось", и при обновлении страницы нужно не заново считать, а продолжать отсчет.
|
|
07.09.2018, 18:44
|
|
Профессор
|
|
Регистрация: 27.05.2010
Сообщений: 33,126
|
|
<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>
|
|
|
|