假设我有这样的代码
$itemtoDisplayTime = $model->getItemTime() // e.g 03:00pm
$currentTime = date('H:i'); //this is the system clock/time
是否适合使用javascript自动重定向过程,而无需刷新页面?如果有,怎么做?
假设$itemDisplayTime现在等于$currentTime,如何在javascript或jquery中使用这些变量如果可能的话
首先计算应该在多少秒后重定向。然后使用下列方法中的秒数。
对于您的情况,strtotime可能有效。
$seconds = strtotime($itemtoDisplayTime) - time();
有几种方法可以重定向,
从PHP发送一个
Refresh
报头。header("Refresh: $seconds; url=$url");
使用Javascript window.setTimeout(function(){ location.href="desired url"; }, seconds*1000);
为什么要用javascript,当你可以用php来做这些,试试这个方法
if($itemDisplayTime==$currentTime)
header( "refresh:0;url=yourpage.php" );
根据你的目标,我想说有两种可能的解决方案。
如果你想刷新一个页面来执行数据库任务,如果你的主机支持的话,我建议你使用cron-jobs。因为这样你就可以关掉你的电脑,让任务自己在服务器端运行,其中一个例子是:(时间在你的主机网站上选择)
php -q /home/path_to_file/your_link.php >/dev/null 2>&1
如果这是为了其他目的,你将不得不使用ajax;因为如果你使用getItemTime,我认为它只会在页面第一次加载时获得一次,你需要每隔几分钟调用一次来重新执行java函数并重新检查时间,但这会使解决方案变得更加复杂。如果你想尝试这种方式,请更彻底地解释一下你想要做的任务,这样我就可以制作具体的代码。