Цитата:
|
до конца суток осталось
<div class="time"></div>
<script>
var x = 24*60*60*1000; // тоесть сутки
down = document.querySelector('.time'),
end = new Date;
end.setHours(0,0,0);
end -= new Date;
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>
|
Более универсальный, добавил склонения, можно указать конечную дату, время и сколько добавлять.
<div class="time"></div>
<script>
function sclPad(n, arr){
return n+" "+arr[(n%100>4 && n%100<20)?2:[2, 0, 1, 1, 1, 2][(n%10<5)?n%10:5]];
}
var x = 24*60*60*1000,
down = document.querySelector('.time'),
now = new Date(),
end = new Date(2018, 8, 8);
(function tick(){
down.innerHTML ='';
var now = new Date(),
ost = 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 =
sclPad(d, ['день', 'дня', 'дней'])+
' '+sclPad(h, ['час', 'часа', 'часов'])+
' '+sclPad(m, ['минута', 'минуты', 'минут'])+
' '+sclPad(s, ['секунда', 'секунды', 'секунд']);
if(ost>0) setTimeout(tick, 1000);
else {
while(end < now) end = end.valueOf() + x;
tick();
}
})();
</script>
|
j0hnik,
ost = new Date(end - now), зачем new Date? |
рони,
поправил, спасибо |
подошло боле менее пост 12, а можно также сделать отсчет только на месяц? а потом снова чтобы он запускался
|
Цитата:
|
просто месяц, например 30 дней, по типу var x = 24*60*60*1000;
может можно так var x = 30*24*60*60*1000; ? |
javascrip,
нужна дата отсчёта, иначе всегда будет d = 29; смотрите ссылку из поста №4, это то что вам нужно |
поставил 11.9.2018 он пишет до конца 60 дней
|
| Часовой пояс GMT +3, время: 06:47. |