我想在我的网站上创建一个计时器/警报,提示用户自登录后1小时。 刷新页面时,计时器不应从头开始。我尝试使用
setTimeout(function(){
alert('signout!!');
}, 10000);
只要我不刷新页面,它就可以正常工作。欢迎任何想法。有没有办法从db计算时间?我将日志存储在db。
中由于
答案 0 :(得分:3)
使用Cookie存储开始时间。在页面加载时,您可以检查cookie,并相应地设置计时器。
当计时器到达小时标记时,或者在达到标记后加载页面时,提示用户并删除cookie。
要在Javascript中设置Cookie,请查看此页面: http://www.w3schools.com/js/js_cookies.asp
答案 1 :(得分:0)
将计时器绑定到特定日期/时间 - 在页面加载时,找出将来该时间点之前的剩余秒数,并相应地设置超时。您可以在客户端或服务器上执行此操作。无论哪种方式。
答案 2 :(得分:0)
我得到了这样的解决方案。
在<head>
代码
<?php
$cur_id = $_SESSION["cur_id"];
$st="select crStarttime, ADDTIME(crStarttime, '1:00:00') as en from callrecord where crID = '$cur_id'";
$rt = mysql_query($st);
$r = mysql_fetch_array($rt);
$starttime = $r['crStarttime'];
$endtime=$r['en'];
?>
<script>
var endtime = "<?php echo $endtime;?>";
</script>
<script type="text/javascript">
function startTime()
{
var today=new Date();
var h=today.getHours();
var m=today.getMinutes();
var s=today.getSeconds();
// add a zero in front of numbers<10
m=checkTime(m);
s=checkTime(s);
document.getElementById('txt').innerHTML=h+":"+m+":"+s;
var curtime =h+":"+m+":"+s;
t=setTimeout('startTime()',500);
if(curtime==endtime)
{
alert("Time to signout.");
}
}
function checkTime(i)
{
if (i<10)
{
i="0" + i;
}
return i;
}
</script>
然后在身体
<div id="txt"></div> // just to print the current time.