Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 07.09.2018, 18:45
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,070

Сообщение от j0hnik
а продолжать отсчет.
пост №4
Ответить с цитированием
  #12 (permalink)  
Старый 07.09.2018, 19:00
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,070

до конца суток осталось
<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>
Ответить с цитированием
  #13 (permalink)  
Старый 07.09.2018, 19:11
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

Более универсальный, добавил склонения, можно указать конечную дату, время и сколько добавлять.
<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, 07.09.2018 в 19:51.
Ответить с цитированием
  #14 (permalink)  
Старый 07.09.2018, 19:38
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,070

j0hnik,
ost = new Date(end - now), зачем new Date?
Ответить с цитированием
  #15 (permalink)  
Старый 07.09.2018, 19:52
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

рони,
поправил, спасибо
Ответить с цитированием
  #16 (permalink)  
Старый 08.09.2018, 15:18
Аспирант
Отправить личное сообщение для javascrip Посмотреть профиль Найти все сообщения от javascrip
 
Регистрация: 29.08.2018
Сообщений: 46

подошло боле менее пост 12, а можно также сделать отсчет только на месяц? а потом снова чтобы он запускался
Ответить с цитированием
  #17 (permalink)  
Старый 08.09.2018, 16:02
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,070

Сообщение от javascrip
а можно также сделать отсчет только на месяц?
можно уточнить месяц это сколько и с какого времени?
Ответить с цитированием
  #18 (permalink)  
Старый 08.09.2018, 20:15
Аспирант
Отправить личное сообщение для javascrip Посмотреть профиль Найти все сообщения от javascrip
 
Регистрация: 29.08.2018
Сообщений: 46

просто месяц, например 30 дней, по типу var x = 24*60*60*1000;
может можно так var x = 30*24*60*60*1000; ?
Ответить с цитированием
  #19 (permalink)  
Старый 08.09.2018, 20:36
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,070

javascrip,
нужна дата отсчёта, иначе всегда будет
d = 29;
смотрите ссылку из поста №4, это то что вам нужно
Ответить с цитированием
  #20 (permalink)  
Старый 09.09.2018, 16:09
Аспирант
Отправить личное сообщение для javascrip Посмотреть профиль Найти все сообщения от javascrip
 
Регистрация: 29.08.2018
Сообщений: 46

поставил 11.9.2018 он пишет до конца 60 дней
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Обратный отсчет от заданного числа с задержкой frost68 Общие вопросы Javascript 9 28.11.2017 16:22
Обратный отсчет Sav2907 Элементы интерфейса 13 22.03.2017 01:24
Обратный отсчет до даты с учетом часовых зон royksopp Flash 0 25.09.2013 18:25
jQuery Timer - обратный отсчет времени в 10 минут adax jQuery 1 01.11.2011 14:54
Многократный обратный отсчет sultan.khayrulin Общие вопросы Javascript 1 30.05.2010 22:41