在PHP中根据日期隐藏链接
我正在使用PHP显示一些日期,当某个日期过期时,我需要隐藏它们 我正在使用IF语句来运行它,但它似乎不起作用 任何建议都很好在PHP中根据日期隐藏链接,php,date,if-statement,Php,Date,If Statement,我正在使用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>'
<?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')
'09-19-2016'<日期('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>';
您需要将日期从格式“09-19-2016”解析为时间戳或DateTime对象,PHP可以将其作为日期进行比较。您可以使用PHP来实现这一点
例如:
$date = '09-19-2017';
$parsed = date_parse_from_format('m-d-Y', $date);
$timestamp = mktime(
$parsed['hour'],
$parsed['minute'],
$parsed['second'],
$parsed['month'],
$parsed['day'],
$parsed['year']
);
if ($timestamp < time()) {
echo 'older';
} else {
echo 'newer';
}
$date='09-19-2017';
$parsed=date_parse_from_格式('m-d-Y',$date);
$timestamp=mktime(
$parsed['hour'],
$parsed['minute'],
$parsed['second'],
$parsed['month'],
$parsed['day'],
$parsed['year']
);
如果($timestamp
这将在保持当前格式的同时为您提供正确答案。您可以在这里看到一个工作示例:您能进一步解释吗?因此,我有一个从第1周到第50周的日期列表,我的目标是让if语句在日期已过且他们不是管理员时隐藏日期。目前,它显示的是所有的日期,不管-我知道如果语句的管理员部分正在工作,但日期部分并不完美,非常感谢-我将使用的对象,它的整洁得多!我知道这很简单很乐意帮忙!:-)如果您觉得这个答案最有用,请接受它:-)字符串可以比较,在这种情况下,它们只需要采用更有意义的格式。“2016-09-19”可以安全地与同一格式的另一个日期进行比较。@BobbyJack是的,你是对的,老实说,我不知道-我总是使用对象或时间戳,直到!