Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Таймер: Осталось часов, минут, секунд до (https://javascript.ru/forum/misc/41138-tajjmer-ostalos-chasov-minut-sekund-do.html)

lammeR 01.09.2013 20:35

Таймер: Осталось часов, минут, секунд до
 
Привет всем.
Необходимо написать скрипт таймера, который считает сколько в ч., м., с., осталось времени до следующего часа, например, есть массив часов: [7, 11, 14, 19, 24], а текущее время 8 : 31 : 5., значит до 11 ч. осталось 2 часа, 28 минут 55 секунд. И время должно считаться циклически, например дошло до 24 часов и продолжает далее считать до 7 часов.
С датой у меня в джаваскрипте всегда загвоздки( Помогите.

deivan 01.09.2013 20:55

этот велосипед многократно придуман до нас, нет смысла выдумывать заново.
вот, выбирайте: http://www.tripwiremagazine.com/2013...n-scripts.html

lammeR 01.09.2013 22:25

К сожалению, надо на чистом javascript`e.

рони 01.09.2013 23:22

lammeR,
:cray: :cray: :cray: Нужен таймер

lammeR 02.09.2013 02:59

рони, спасибо, но не могли бы немного объяснить сложные моменты:

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)
};

рони 02.09.2013 10:33

lammeR,
//зачем проверка? -- прибавляем сутки для последнего элемента
//? получаем время в миллисекундах
//сложный момент, можно как-то его написать более длинее?
for (b = 0; b < c.length; b++){
    a = d[b] - (new Date).getTime();
    if(a > 0)  break  //находим первую положительную разницу между текущим временем и временем из массива d, значит до этого срока ещё есть  время, останавливаем поиск - выводим разницу преобразуя  в часы минуты секунды
 }

lammeR 02.09.2013 16:40

Спасибо :dance: .

Deff 02.09.2013 20:59

http://javascript.ru/forum/dom-windo...otschjota.html


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