我在PHP和jQuery AJAX中做了一个countdowntimer,它每秒显示一个名为$timeleft的变量。
计时器.js
$(function()
{
var timertext = $("[timer]");
setInterval(function()
{
$.post("timer.php", {type : "timerupdate"}, function(data)
{
timertext.html("Time left: " + data + " seconds")
});
}, 1000);
});
计时器.php
date_default_timezone_set("Europe/Amsterdam");
$timecountdownend = strtotime("2020-05-18 14:30:00");
$timecountdownstart = strtotime("now");
$startdatetime = "2020-05-18 14:07:00"; //variable for starting datetime
if(date('Y-m-d H:i:s') >= $startdatetime){
$timeleft = $timecountdownend - $timecountdownstart;
if(isset($_POST["type"]) === true && $_POST["type"] == "timerupdate")
{
echo ($timeleft);
}
}
解释:在特定时间 ($startdatetime( 时启动并计算秒数直到$timecountdownend时间的计时器。它工作正常,但我实际上想数秒而不是倒数。因此,如果已达到 $startdatetime,则它从 1 秒开始计数,并且每一秒都在计数,直到达到$timecountdownend。我怎样才能用时间做到这一点?我尝试了很多东西,比如$timeleft = $timecountdownend - strtotime(date('Y-m-d H:i:s'((; 但它没有用。
提前非常感谢。
如果你有时间的话,首先离开它的 你的计数器 : -2820 您可以简单地将其乘以 (-1(:-2820 * (-1( = 2820
date_default_timezone_set("Europe/Amsterdam");
$timecountdownend = strtotime("2020-05-18 14:30:00");
$timecountdownstart = strtotime("now");
$startdatetime = "2020-05-18 14:07:00"; //variable for starting datetime
$timeleft = $timecountdownend - $timecountdownstart;
echo ($timeleft);
echo(PHP_EOL);
echo ($timeleft*(-1));
echo(PHP_EOL);
echo( date('Y-m-d h:i:sa',strtotime($startdatetime)+$timeleft*(-1)));
http://sandbox.onlinephpfunctions.com/code/792ec42255d85a45c377b6e8d34cbde143430824