@vialonchele

Как реализовать таймер средствами php и js?

Нужен таймер который будет продолжать отсчет после закрытия страницы, но не понимаю как реализовать его.
Если я беру время из бд, 10 часов например, то на странице начинается отсчет, но как сохранить данные обратно в бд, либо же у юзера,так чтоб даже если он не на сайте то таймер продолжал отсчет?
Вот код таймера:
function startTimer() {
    var my_timer = document.getElementById("my_timer");
    var time = my_timer.innerHTML;
    var arr = time.split(":");
    var d = arr[0]
    var h = arr[1];
    var m = arr[2];
    var s = arr[3];
    if (s == 0) {
      if (m == 0) {
        if (h == 0) {
            if (d == 0) {
                  alert("OK");
                  window.location.reload();
                  return;
            }
            d--;
            h = 24;
            if (d < 10) d = "0" + d;
        }
        h--;
        m = 60;
        if (h < 10) h = "0" + h;
      }
      m--;
      if (m < 10) m = "0" + m;
      s = 59;
    }
    else s--;
    if (s < 10) s = "0" + s;
    document.getElementById("my_timer").innerHTML = d+":"+h+":"+m+":"+s;
    setTimeout(startTimer, 1000);
  }

<?php 
  $time = "1:23:59:10";?>
<body onload="startTimer()">
<p>Wait 
   <span id="my_timer">
       <?=$time?>
   </span>
</p>
</body>
  • Вопрос задан
  • 117 просмотров
Пригласить эксперта
Ответы на вопрос 1
После закрытия страницы все скрипты перестают работать - в этом направлении можете не думать. Совершенно непонятно, что вы хотите сделать. Вопрос, что должно произойти как таймер "теоретически" завершится?

Можете сохранять в куку время старта вашего таймера. Когда пользователь вернется на сайт, сравнивать сколько прошло времени с момента старта и что-то делать.

Если вам нужно прислать уведомление пользователю, то используйте HTML 5 Notifications API (в интернете найдете). Больше догадываться что вы хотите реализовать у меня мыслей нет). Уведомление придет даже если страница закрыта.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы