我有订单(主)和测试(子)表。主表有" 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();
}
}
答案 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
}