首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将服务器当前的时间戳自动放入strtotime()函数?

如何将服务器当前的时间戳自动放入strtotime()函数?
EN

Stack Overflow用户
提问于 2019-03-25 02:27:20
回答 2查看 87关注 0票数 0

我试图使一个程序,倒计时超过15秒的空间,并显示他们使用PHP和JQuery。我需要能够自动将服务器的时间戳加载到strtotime函数中,并将其设置为计时器的起始点,并在该点之后15秒设置计时器的终点,有什么方法可以实现这一点吗?

我已经尝试了具体设置时间,计时器工作到这些点后的15秒,但我需要它自动设置这些时间相对于当前时刻,因为我希望它在程序运行时在某些未决定的点启动和停止计时器。我也尝试过参考值'now‘和'-15秒’,但这两个值似乎将计时器停止在‘剩余15秒’,并且不会从这一点开始倒计时。

timer.php:

代码语言:javascript
复制
<?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:

代码语言:javascript
复制
$(function() {
    var timerText = $("[timer]");

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

计时器tests.php:

代码语言:javascript
复制
<!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秒开始倒计时。

任何帮助都是非常感谢的,谢谢:)

EN

回答 2

Stack Overflow用户

发布于 2019-03-25 02:39:47

如果你想在重新加载后保存计时器,你需要一些东西,比如带有cookie的会话。看一看https://php.net/manual/en/function.session-start.php

代码语言:javascript
复制
//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;
  }
}

您必须将settings:withCredentials: true添加到ajax调用中,以便发送cookie

票数 0
EN

Stack Overflow用户

发布于 2019-03-26 16:14:18

你能检查一下使用日期函数和时间吗?

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55327071

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档