Таймер обратного отсчета с временем из БД
Здравствуйте делаю счетчик обратного отсчета , суть счетчика заключается в том чтобы отсчитывать ровно 1 час и выполнять определенное действие. время лежит в БД и берется запросом. Вот код подсчета времени:
<? $email = $_SESSION['username']; $vremya = mysqli_fetch_array(mysqli_query($db, "select * from time where id = '1'")); $wait = mysqli_fetch_array(mysqli_query($db, "select * from settings where `set` = 'wait'")); $timech = time(); // время сейчас в сайтстамп $tmm = $timech - $vremya['time']; // время сейчас - время до срабатывания = прошедшее время $rtt = $wait['value'] - $tmm; // время до срабатывания echo date('i:s',$rtt); ?> echo все выводит правильно, помогите прикрутить это время на JS вот код счетчика ни как не могу их свести вместе. Если беру время из базы постоянно пишет что время вышло и счетчик по нулям function countDown(second,endMinute,endHour,endDay,endMonth,endYear) { var now = new Date(); second = (arguments.length == 1) ? second + now.getSeconds() : second; endYear = typeof(endYear) != 'undefined' ? endYear : now.getFullYear(); endMonth = endMonth ? endMonth - 1 : now.getMonth(); //номер месяца начинается с 0 endDay = typeof(endDay) != 'undefined' ? endDay : now.getDate(); endHour = typeof(endHour) != 'undefined' ? endHour : now.getHours(); endMinute = typeof(endMinute) != 'undefined' ? endMinute : now.getMinutes(); //добавляем секунду к конечной дате (таймер показывает время уже спустя 1с.) var endDate = new Date(endYear,endMonth,endDay,endHour,endMinute,second+1); var interval = setInterval(function() { //запускаем таймер с интервалом 1 секунду var time = endDate.getTime() - now.getTime(); if (time < 0) { //если конечная дата меньше текущей clearInterval(interval); alert("Неверная дата!"); } else { var days = Math.floor(time / 864e5); var hours = Math.floor(time / 36e5) % 24; var minutes = Math.floor(time / 6e4) % 60; var seconds = Math.floor(time / 1e3) % 60; var digit='<div style="width:70px;float:left;text-align:center">'+ '<div style="font-family:Stencil;font-size:65px;">'; var text='</div><div>' var end='</div></div><div style="float:left;font-size:45px;">:</div>' document.getElementById('mytimer').innerHTML = '<div>осталось до выбора: </div>'+ digit+minutes+text+'Минут'+end+digit+seconds+text+'Секунд'; if (!seconds && !minutes && !days && !hours) { clearInterval(interval); alert("Время вышло!"); } } now.setSeconds(now.getSeconds() + 1); //увеличиваем текущее время на 1 секунду }, 1000); } countDown(3600); //устанавливаем таймер на 3600 секунд Может есть какие нибудь другие варианты выполнения этой задачи, основная задача счетчика: 1.отсчитать ровно час.( от любого времени главное что час отсчитывал) 2. Выполнить запись в БД и отсчитывать опять час. (смысл, каждый час по счетчику заносятся данные в БД ) Но чтоб этот счетчик был виден на сайте всем пользователям. Может есть простое решение без костылей которые я тут понаписал? Подскажите хоть куда копать, толком на гуглить ничего не смог )) |
Часовой пояс GMT +3, время: 02:31. |