Как поместить текущую метку времени сервера в функцию strtotime () автоматически PHP? - PullRequest
0 голосов
/ 24 марта 2019

Я пытаюсь создать программу, которая ведет обратный отсчет в течение 15 секунд и отображает их с помощью PHP и JQuery.Мне нужно иметь возможность автоматически загружать метку времени сервера в функцию strtotime и устанавливать ее в качестве начальной точки таймера, а также устанавливать конечную точку таймера через 15 секунд после этой точки. Есть ли способ, которым я могу этого достичь?

Я попытался установить время отдельно, и таймер работает для отсчета до 15 секунд после этих точек, но мне нужно, чтобы он автоматически устанавливал это время относительно текущего момента, так как я хочу, чтобы он запускал и останавливал таймерв определенных неопределенных точках в программе, как она работает.Я также пробовал опорные значения «сейчас» и «-15 секунд», но, похоже, они останавливают таймер на «15 оставшихся секунд», и он не начинает обратный отсчет с этого момента.

timer.php:

<?php
if(true) {
    $countdownEnd = strtotime("-15 seconds");
    $countdownStart = strtotime("now");
    $timeLeft = $countdownEnd - $countdownStart;

    if(isset($_POST["type"]) === true && $_POST["type"] == "timerupdate") {
        echo ($timeLeft);
    }
}
?>

timer.js:

$(function() {
    var timerText = $("[timer]");

    setInterval(function() {
        $.post("timer.php", {type : "timerupdate"}, function(data){
            timerText.html(data + " seconds remaining")
        });
    }, 1000);
});

timer tests.php:

<!DOCTYPE HTML>
<html>
<head>
    <script type="application/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.3/jquery.min.js"></script>
    <script type="application/javascript" src="timer.js"></script>
    </head>
<body>
    <?php include("timer.php") ?>
    <p timer></p>
</body>
</html>

Я ожидаю, что на выходе будет таймер, который отсчитывает от 15 секундвсякий раз, когда начальное условие (оператор if в начале timer.php) становится истинным.

Любая помощь действительно приветствуется, спасибо:)

Ответы [ 2 ]

0 голосов
/ 26 марта 2019

Можете ли вы проверить с помощью функции даты со временем.

0 голосов
/ 24 марта 2019

Если вы хотите сохранить таймер после перезагрузки, вам нужно что-то вроде сеанса с cookie.взгляните на https://php.net/manual/en/function.session-start.php

//start a session and make sure there is no output before 
session_start();
//maybe you want to check for the requestmethod before you do additional checks
if ($_SERVER['REQUEST_METHOD'] === 'POST') {
  //your check for timerupdate.
  //you dont have to exact bool compare to true the isset it can only return true or false.
  if (isset($_POST["type"]) && $_POST["type"] == "timerupdate") {
    if (!isset($_SESSION['time'])) $timeLeft = 15;
    else $timeLeft = 15 - (time() - $_SESSION['time']);
    //output the timer or whatever you want
    if ($timeLeft < 0) echo 0;
    else echo $timeLeft;
  }
}

, вам нужно добавить настройки: withCredentials: true в ваш вызов ajax, чтобы отправлять куки

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...