计时器主
$curDate = date("Y-m-d H:i:s", strtotime("-8 hours"));
$timecountdownend = strtotime($curDate) + strtotime("+1 hours");
$timecountdownstart = strtotime("-8 hour");
$timeleft = $timecountdownend - $timecountdownstart;
if (isset($_POST['type']) && $_POST['type'] == "timerupdate") {
echo $timeleft;
}
?>
计时器更新5秒
$(document).ready(function(){
var timerText = $("[timer]");
setInterval(function(){
$.post("timer.php", {type: "timerupdate"}, function(data){
timerText.html("Time Left:" + data + " seconds timer.")
});
}, 5000);
});
您想要实现的目标是什么?
这个想法是当用户保留一个项目时,将到期日期设置到数据库中,以便保留该项目的USER不能永久保留它。例如:
用户A:预约项目A.
[SERVER] $ database-> insert(" reservation",$ curDate);
[SERVER] 2016-04-03 16:00:00(此项目过期30分钟后)
那应该发生在后端的事情。
你有什么行为?
我已经完成了大量的谷歌搜索,看看如何在当前日期添加x小时或分钟,并将其传递成为unix时间戳。
您的问题是什么?
每当我尝试上面的代码时,它都能正常工作,但却没有找到我需要的正确输出。具体问题是$timecountdownend = strtotime($curDate) + strtotime("+1 hours");
**新**
date_default_timezone_get("America/New York");
$curDate = date("Y-m-d H:i:s", strtotime("-8 hours"));
$date = new DateTime($curDate);
date_add($date, date_interval_create_from_date_string('2 hour'));
$timecountdownend = strtotime($date->format('Y-m-d H:i:s'));
$timecountdownstart = strtotime("-8 hour");
$timeleft = $timecountdownend - $timecountdownstart;
if (isset($_POST['type']) && $_POST['type'] == "timerupdate") {
echo $timeleft;
}
输出:7200秒(尽管如此)。这很精确,但它没有倒计时。
答案 0 :(得分:1)
您考虑过http://php.net/manual/en/datetime.add.php吗?
唯一棘手的部分是了解这种语法是如何工作的:$date->add(new DateInterval('P7Y5M4DT4H3M2S'));
P7表示添加7年H3意味着添加3小时
在数据库中保存或更新日期后,请将副本与响应一起发送,并在最终答复文档中输入:
https://jsfiddle.net/o740okn4/5/
您需要从CDN进行这些调用或从git
获取脚本moment.min.js
moment-duration-format.min.js
https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.12.0/moment.min.js 和 https://cdnjs.cloudflare.com/ajax/libs/moment-duration-format/1.3.0/moment-duration-format.min.js