定时器主
$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);
});你想实现什么?
其思想是当用户保留一项时,将过期日期设置到数据库中,以便保留该项的用户不能永远持有该项目。例如:
用户A:保留项目A。 服务器$database->insert(“订票”,$curDate); 服务器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秒(卡住)。它是精确的,但它没有计算下来。
发布于 2016-04-03 21:40:20
你考虑过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.jshttps://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
https://stackoverflow.com/questions/36391502
复制相似问题