繁体   English   中英

如何在一定时间后执行代码php

[英]how to execute a code after certain time php

我有一个不确定的问题,可能无法使用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>';
}

}

谁能帮我这个忙。 提前致谢

我想你可以用javacript实现这个。

这里有一点,就是在loggin之后,存储两个变量:

用户登录时的当前日期,将其称为logged_time

另一个检查pop是否已显示的变量,调用它: 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());
}

显示pop的功能似乎与下面的代码相似:

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);

希望对你有所帮助。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM