如何使php中的多重计时器即使页面刷新也不会重置
How to make a multiple timer not to reset in php even if the page refreshes?
我已经从这里检查了答案,那么我如何为多个数据创建它。例如,为了让我为特定服务设置计时器。这是我的剧本。
<script type="text/javascript">
//var minutes2 = currentTime.setMinutes(currentTime.getMinutes() + 30);
function addMinutes(date, minutes) {
return new Date(date.getTime() + minutes*60000);
}
var dat = new Date();
//var tim = addMinutes(dat, 15);
//console.log(tim);
function fixIntegers(integer)
{
if (integer < 0)
integer = 0;
if (integer < 10)
return "0" + integer;
return "" + integer;
}
$(function () {
$('.btn-start-timer').click(function(){
var i = window.setInterval(function(){
var future = addMinutes(dat, 60);
//var future = new Date("Dec 12 2013 22:10:00 GMT-0800 (Pacific Standard Time) ");
var now = new Date();
//console.log(tim);
var difference = Math.floor((future.getTime() - now.getTime()) / 1000);
var seconds = fixIntegers(difference % 60);
difference = Math.floor(difference / 60);
var minutes = fixIntegers(difference % 60);
difference = Math.floor(difference / 60);
var hours = fixIntegers(difference % 24);
difference = Math.floor(difference / 24);
var days = difference;
/* $(this).parent().parent().find('.timer #seconds').text(seconds + "s");
$(this).parent().parent().find('.timer #minutes').text(minutes + "m");
$(this).parent().parent().find('.timer #hours').text(hours + "h");
$(this).parent().parent().find('.timer #days').text(days + "d");*/
$(".timer #seconds").text(seconds + "s");
$(".timer #minutes").text(minutes + "m");
$(".timer #hours").text(hours + "h");
$(".timer #days").text(days + "d");
if(hours == 0 && minutes == 0 && seconds == 0){
window.clearInterval( i );
alert('times up');
}
}, 1000);
});
});
</script>
这是我的html:
<table cellpadding="10">
<tr>
<th>Timer</th>
<th> </th>
</tr>
<tr>
<td class="timer">
<span id="days"></span>
<span id="hours"></span>
<span id="minutes"></span>
<span id="seconds"></span>
</td>
<td><button type="button" class="btn-start-timer">Start Now</button></td>
</tr>
<tr>
<td class="timer">
<span id="days"></span>
<span id="hours"></span>
<span id="minutes"></span>
<span id="seconds"></span>
</td>
<td><button type="button" class="btn-start-timer">Start Now</button></td>
</tr>
</table>
一旦启动,我如何使时间不重置?
在$_SESSION或$_COOKIE['time']或localStorage中保存小时、分钟、秒然后从中检索值。
使用事件:
加载之前
检测用户何时离开页面。然后,发送一个ajax请求。为了处理您的请求,您只需将任何信息保存在posted.php.中的$_SESSION变量中即可
// posted.php
session_start();
if ( isset ( $_POST['hours'] && isset ( $_POST['minutes'] && isset ( $_POST['seconds'] && )
{
$_SESSION['hours'] = $_POST['hours'];
$_SESSION['minutes'] = $_POST['minutes'];
$_SESSION['seconds'] = $_POST['seconds'];
}
然后,当您的新页面加载/刷新时,您应该在javascript中包含已初始化的变量。
var hours = <?php if ( isset($_SESSION['hours']) ) echo $_SESSION['hours'] else 0; ?>;
var minutes = <?php if ( isset($_SESSION['minutes']) ) echo $_SESSION['minutes'] else 0; ?>;
var seconds = <?php if ( isset($_SESSION['seconds ']) ) echo $_SESSION['seconds '] else 0; ?>;
现在明白了,这是一个黑暗的镜头,因为我不知道你的应用程序是如何构建的。如果你正在使用某种框架,这可能没有那么容易,但如果你正在编程一些小的或过程性的东西,那么这将符合你的需求。
编辑:我知道你有多个定时器,而不是使用
$_SESSION['hours']
使用
$_SESSION['idOfTimer']['hours']
每个定时器都有自己的定时器。
相关文章:
- 可以't使用ajax刷新php表
- 自动刷新 PHP 脚本后端
- 如何使用 AJAX 刷新 PHP 文件
- 从窗口页面响应后刷新 php 页面
- 如何刷新 PHP 页面的特定部分
- 刷新 php 输出而不重新加载页面
- 刷新 php 页面而不重新加载内容
- 使用 AJAX 调用重新加载/刷新 PHP 脚本
- 使用JavaScript刷新PHP函数
- 如何在不重新加载的情况下刷新PHP页面
- Count()函数在页面刷新php后更新
- 刷新PHP sql查询而不刷新页面
- 提交按钮->run.php->弹出->刷新php页面的一部分
- 我正在尝试刷新 PHP 变量
- 如何在提交表单后刷新.php页面
- 如何在不刷新php, SQL和javascript页面上的数据的情况下单击标签提交
- Jquery刷新php和停止函数
- 如何使用javascript代码刷新PHP文件?
- Ajax定时刷新/ PHP / MySQL
- 如何在收到jquery的帖子后刷新PHP页面并显示更改