Таймер: Осталось часов, минут, секунд до
Привет всем.
Необходимо написать скрипт таймера, который считает сколько в ч., м., с., осталось времени до следующего часа, например, есть массив часов: [7, 11, 14, 19, 24], а текущее время 8 : 31 : 5., значит до 11 ч. осталось 2 часа, 28 минут 55 секунд. И время должно считаться циклически, например дошло до 24 часов и продолжает далее считать до 7 часов. С датой у меня в джаваскрипте всегда загвоздки( Помогите. |
этот велосипед многократно придуман до нас, нет смысла выдумывать заново.
вот, выбирайте: http://www.tripwiremagazine.com/2013...n-scripts.html |
К сожалению, надо на чистом javascript`e.
|
lammeR,
:cray: :cray: :cray: Нужен таймер |
рони, спасибо, но не могли бы немного объяснить сложные моменты:
function Time() { var a = new Date, c = [7, 15, 23, 7], d = [], e = a.getDate() + 1, b = 0; for (; b < c.length; b++) a.setHours(c[b], 0, 0, 0), //устанавливаем время из массива 3 == b && a.setDate(e), //зачем проверка? d[b] = a.getTime(); //? for (b = 0; b < c.length && !(a = d[b] - (new Date).getTime(), 0 < a); b++); //сложный момент, можно как-то его написать более длинее? document.getElementById("show").innerHTML = "До " + c[b] + " осталось " + formatTime(a); window.setTimeout(Time, 1E3) }; |
lammeR,
//зачем проверка? -- прибавляем сутки для последнего элемента //? получаем время в миллисекундах //сложный момент, можно как-то его написать более длинее? for (b = 0; b < c.length; b++){ a = d[b] - (new Date).getTime(); if(a > 0) break //находим первую положительную разницу между текущим временем и временем из массива d, значит до этого срока ещё есть время, останавливаем поиск - выводим разницу преобразуя в часы минуты секунды } |
Спасибо :dance: .
|
|
Часовой пояс GMT +3, время: 19:14. |