我正在使用 PHP 显示多个日期,并且我需要在某个日期过期时隐藏它们。
我正在使用 IF 语句来运行它,但它似乎不起作用。
任何建议都会很棒
<?PHP if('09-19-2016'<DATE('m-d-Y') || $_SESSION['role'] == 'Administrator') echo('<li><a href="?page=itRooms&weekId=2">Week 2 - W/C 12/09/2016</li></a>');?>
最佳答案
当你做的时候
'09-19-2016' < date('m-d-Y')
您最终要比较两个字符串,它们不能被评估为“大于”或“小于”。您需要将其转换为时间戳或使用 DateTime 对象来执行此操作。另外,日期格式不正确。
<?php
$date_string = "09/19/2016";
// Using objects
$current_date = new DateTime();
$your_date = new DateTime($date_string);
if ($your_date < $current_date || $_SESSION['role'] == 'Administrator')
echo'<li><a href="?page=itRooms&weekId=2">Week 2 - W/C 12/09/2016</li></a>';
// Using timestamps
if (strtotime($date_string) < time() || $_SESSION['role'] == 'Administrator')
echo'<li><a href="?page=itRooms&weekId=2">Week 2 - W/C 12/09/2016</li></a>';
选择以上任意一项 - 两者都可以,尽管我发现对象更容易使用。
根据您的评论,
hide the date if the date has passed
请注意,使用小于运算符时<
,做$date < $now
如果日期是过去的,则评估为 true;如果日期是 future 的,则隐藏内容。如果您想要相反的行为,只需使用大于运算符 <
。
这是一个现场演示:https://3v4l.org/N74G2
引用文献
关于php - 在 PHP 中根据日期隐藏链接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41483340/