如何在到期日之后通过php将用户重定向到另一个页面

时间:2014-05-05 21:24:04

标签: php

我有订单(主)和测试(子)表。主表有" target_date"领域。我想阻止用户在主记录中的target_date到期后在子表(Test)中添加新记录。我使用以下代码进行测试,以便重定向到另一个没有运气的页面。

我刚刚从原始子表创建了一个视图表而没有"添加按钮"并在过期日期后使用此表从原始子表重定向。

我将此代码放在child_listpage上:在Process事件之前。它应该工作,但有些原因它没有。当用户单击主记录页面上的原始子(测试)表链接时,如果主表上的target_date已过期,它应该重定向到child_view页面。

感谢您的帮助。提前谢谢。

function BeforeProcessList(&$conn, &$pageObject)
{
    $target_date = "05-01-2014"; 

    if($target_date == date("m-d-Y",time()))
    {
       header("Location: testview_list.php");
       exit();
    }
}

2 个答案:

答案 0 :(得分:0)

这可能对您有所帮助

function BeforeProcessList(&$conn, &$pageObject)
{
   $target_date = new DateTime("05-01-2014");
   $today = new DateTime(); 
   if((int)$target_date->diff($today)->format('%r%a') >= 0)
   {
      header("Location: testview_list.php");
      exit();
   }
}

答案 1 :(得分:0)

首先,与==进行比较只会在一个确切的日期进行重定向。其次,您不想将当前日期转换为字符串,而是希望将目标日期转换为时间戳,以便您可以对其进行数学比较:

// Note changed date format, just to be unambiguous
// I'm guessing you meant May 1st not Jan 5th
$target_date = "2014-05-01"; 

if ( strtotime($target_date) <= time() ) {
     // etc
}

或者,您可以使用DateTime objects,方式大致相同:

$target_date = "2014-05-01"; 

if ( new DateTime($target_date) <= new DateTime() ) {
     // etc
}