我有一个不确定的问题,不确定是否可以使用php
,可能是因为我需要javascript
。问题是,当用户登录时,我正在将当前时间保存到session
,并且如果条件匹配,我想在10分钟后立即弹出一个弹出窗口。
$dbdate = strtotime("+1 minutes",$_SESSION['logintime']);
$timwnow=date("H:i:s");
if (strtotime($timwnow) == $dbdate) {
if(isset($checkno_wq) || isset($checkno_ap) || isset($Appcount) ||
isset($followup_count) || isset($count_request) || isset($count_self_study) || isset($countBroadcast) || isset($perform_count) || isset($qa_count) || isset($attendance_count) || isset($coach_count) || count($pre_appoverd) > 0)
{
echo '<script type="text/javascript">setTimeout( function() { $("#notificationModal").modal("show");
}, 10000);
</script>';
}
}
有人可以帮我这个忙吗? 预先感谢
答案 0 :(得分:0)
我认为您可以使用javacript来实现。
这里是要点,是在loggin之后,存储两个变量:
用户登录的当前日期,将其命名为 logged_time
另一个用于检查弹出窗口是否已显示的变量,将其命名为: pop_already_showed
localStorage.setItem('logged_time', new Date());
localStorage.setItem('pop_already_showed', false);
注意:您必须检查looged_time密钥是否未设置为存储 新日期,如果不是,则在重新加载页面时将始终设置 带有新日期,您将永远无法检测到是否已经过去了10分钟 还是在用户重新加载页面的情况下不可以。
if (localStorage.getItem("logged_time") === null) {
localStorage.setItem('logged_time', new Date());
}
显示弹出消息的功能似乎类似于下面的代码:
function showPop(){
var rightnow = new Date();
var diff = Math.abs(rightnow-localStorage.getItem('logged_time'));
var min = Math.floor((diff/1000)/60);
if(min>=10 && localStorage.getItem('pop_already_showed') ){
localStorage.setItem('pop_already_showed', true);
// add you code that show the pop here
}
}
最后,用setTimeout调用函数
setTimeout(function() {
showPop();
}, 1000*60*10);
希望对您有帮助。