我正在尝试制作一个倒计时15秒并使用PHP和JQuery显示它们的程序。我需要能够将服务器的时间戳自动加载到strtotime函数中并将其设置为计时器的起点,并使计时器的终点在此点之后15秒,有什么办法可以实现? / p>
我尝试过专门设置时间,并且计时器可以在这些时间点之后计数到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>
我希望输出是一个计时器,只要开始条件(timer.php开头的if语句)为真,它就会从15秒开始倒计时。
我们非常感谢您的帮助,谢谢:)
答案 0 :(得分:0)
如果要在重新加载后保存计时器,则需要类似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;
}
}
您必须在ajax调用中添加设置:withCredentials: true
才能发送Cookie
答案 1 :(得分:0)
可以将日期功能与时间一起使用吗?