如何根据给定的时间自动重定向页面?我应该使用javascript吗?如何去做


how to auto redirect a page based on given time? should i use javascript ? how?

假设我有这样的代码

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

有几种方法可以重定向,

  1. 从PHP发送一个Refresh报头。

    header("Refresh: $seconds; url=$url");
    
  2. 使用Javascript
  3. 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函数并重新检查时间,但这会使解决方案变得更加复杂。如果你想尝试这种方式,请更彻底地解释一下你想要做的任务,这样我就可以制作具体的代码。