我的日期是这样的:16/02/2011
我想要做的是有一个简单的PHP条件,检查今天的日期是DAY还是AFTER,例如:
<?php
$mydate = '26/01/2010';
if($mydate == date('dd/mm/yyyy')
{
echo 'last day to reply';
}
elseif($mydate == 'date after todays date')
{
echo 'post has expired and you cannot reply';
}
else
{
echo 'post has NOT expired and you can reply';
}
?>
因此,如果今天的日期是01/01/2011那么它会说帖子没有过期 如果日期是2011年2月17日那么它会说最后一天回复 如果日期是在2011年2月25日之后,那么就会说它已经过期了。
有人可以帮忙吗?谢谢:))
答案 0 :(得分:1)
答案 1 :(得分:1)
如果您能以适当的格式(17-02-2011或02/17/2011)获取结束日期,则可以使用mktime
(或strotime
):
$mydate = '17/02/2011';
$mydate_parts = explode('/', $mydate);
$mydate_timestamp = mktime(0, 0, 0, $mydate_parts[1], $mydate_parts[0], $mydate_parts[2]);
if($mydate == date('d/m/Y'))
{
echo 'last day to reply';
}
elseif($mydate_timestamp < time())
{
echo 'post has expired and you cannot reply';
}
else
{
echo 'post has NOT expired and you can reply';
}
答案 2 :(得分:1)
最简单的方法是使日期格式正确。特别是如果它来自数据库。
<?php
$mydate = '2010-01-26';
$curdate = date('Y-m-d');
if($curdate == $mydate)
{
echo 'last day to reply';
}
elseif($curdate > $mydate)
{
echo 'post has expired and you cannot reply';
}
else
{
echo 'post has NOT expired and you can reply';
}
?>
请注意,通过阅读此代码,您可以轻松了解它的作用 它几乎是自然语言,不言自明 不像这里的所有其他代码。
答案 3 :(得分:1)
不是比较视觉日期,而是比较时间戳可能更好:
$deadline = strtotime('2010-01-26');
$today = mktime(0, 0, 0);
if ($today == $deadline) {
echo 'last day';
}
else if ($today > $deadline) {
echo 'past day';
}
else {
echo 'a-okay';
}
答案 4 :(得分:1)
简单来说,你想做一些像:
if(strtotime($ date)&gt; date()){ echo“你的帖子已过期”; }
很难比较日期 - 那是字符串,特别是当你认为“2/3/4”可能是8个不同日期中的任何一个时(2月3日,'04; 3月4日,'02;等等)。将日期/时间保存为PHP中的实际时间戳值使得比较变得更加容易。
答案 5 :(得分:0)
我强烈建议您查看DateTime课程文档;如果你不感兴趣的话;一个string slice会起作用。
答案 6 :(得分:0)
以下内容对你来说可能是最快的。
if( mktime(0,0,0,substr($mydate, 3, 2), substr($mydate, 0, 2), substr($mydate, 6, 4) ) > time() )