PHP:基于日期的条件

时间:2011-02-17 14:46:06

标签: php date

我的日期是这样的: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日之后,那么就会说它已经过期了。

有人可以帮忙吗?谢谢:))

7 个答案:

答案 0 :(得分:1)

最简单的方法是使用mktime转换所需的日期和时间(最后日期和最终截止日期),然后直接将当前time与这些日期和时间进行比较。

答案 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() )