Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP:基于日期的条件_Php_Date - Fatal编程技术网

PHP:基于日期的条件

PHP:基于日期的条件,php,date,Php,Date,我有一个这样的日期:2011年2月16日 我想做的是用一个简单的PHP条件检查今天的日期是当天还是之后,例如: <?php $mydate = '26/01/2010'; if($mydate == date('dd/mm/yyyy') { echo 'last day to reply'; } elseif($mydate == 'date after todays date') { echo 'post

我有一个这样的日期:2011年2月16日

我想做的是用一个简单的PHP条件检查今天的日期是当天还是之后,例如:

<?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';
    }

?>

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

最简单的方法是转换所需的日期和时间(最后日期和最终截止日期)然后直接比较电流和电流。

我强烈建议您查阅课堂文档;如果你不感兴趣;a会有用的

我强烈建议您查阅课堂文档;如果你不感兴趣;a会有用的

您可以使用
mktime
(或者
strotime
,如果您可以以适当的格式获取您的结束日期,即2011年2月17日或2011年2月17日):

$mydate='17/02/2011';
$mydate_parts=分解(“/”,$mydate);
$mydate_timestamp=mktime(0,0,0,$mydate_parts[1]、$mydate_parts[0]、$mydate_parts[2]);
如果($mydate==日期('d/m/Y'))
{
回声“最后一天回复”;
}
elseif($mydate\u timestamp
您可以使用
mktime
(或者
strotime
,如果您可以以适当的格式获取您的结束日期,即2011年2月17日或2011年2月17日):

$mydate='17/02/2011';
$mydate_parts=分解(“/”,$mydate);
$mydate_timestamp=mktime(0,0,0,$mydate_parts[1]、$mydate_parts[0]、$mydate_parts[2]);
如果($mydate==日期('d/m/Y'))
{
回声“最后一天回复”;
}
elseif($mydate\u timestamp
最简单的方法是以正确的格式记录日期。特别是如果它来自数据库

<?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';
    }

?>

请注意,通过阅读此代码,您理解它的功能不会有任何问题。
这几乎是自然语言,不言自明

与这里的所有其他代码不同。

最简单的方法是以正确的格式记录日期。特别是如果它来自数据库

<?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';
    }

?>

请注意,通过阅读此代码,您理解它的功能不会有任何问题。
这几乎是自然语言,不言自明

与此处的所有其他代码不同。

与其比较视觉日期,不如比较时间戳:

$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';
}

与其比较视觉日期,不如比较时间戳:

$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';
}

简单地说,你会想做一些事情,比如:

如果(strotime($date)>date()){ 回声“你的帖子已经过期”; }


比较字符串的日期是非常困难的,特别是当你认为“2/3/4”可以是8个不同的日期(2月3日,04,3月4日,02;等等)中的任何一个。在PHP中将日期/时间保留为实际的时间戳值,这样比较就容易多了。

简单地说,您可能希望执行以下操作:

如果(strotime($date)>date()){ 回声“你的帖子已经过期”; }


比较字符串的日期是非常困难的,特别是当你认为“2/3/4”可以是8个不同的日期(2月3日,04,3月4日,02;等等)中的任何一个。在PHP中,将日期/时间保留为实际的时间戳值会使比较更加容易。

以下内容可能是最快的方法

if( mktime(0,0,0,substr($mydate, 3, 2), substr($mydate, 0, 2), substr($mydate, 6, 4) ) > time() )

对你来说,以下几点可能是最快的

if( mktime(0,0,0,substr($mydate, 3, 2), substr($mydate, 0, 2), substr($mydate, 6, 4) ) > time() )

我不明白你的示例日期-2011年2月17日怎么可能是最后一天?截止日期是18日还是16日?我不明白你的示例日期-2011年2月17日怎么可能是最后一天?截止日期是18日还是16日?如果他们在截止日期后1秒,他们无法回复!您也可以在这里使用
strotime()
而不是
mktime()
。不过这并不重要。我想你的意思也是>
time()
?@tandu err,如果今天是2011年2月17日,那么它将打印“最后一天”。如果时间戳小于当前时间,则它已过期,否则他们可以回复。而且
strotime
不懂d/m/Y格式,只好用
mktime
啊,好电话,对不起。我仍然认为你的意思是>时间()。@tandu不,我的意思是
如果他们在截止日期后一秒钟,他们就不能回复!您也可以在这里使用
strotime()
而不是
mktime()
。不过这并不重要。我想你的意思也是>
time()
?@tandu err,如果今天是2011年2月17日,那么它将打印“最后一天”。如果时间戳小于当前时间,则它已过期,否则他们可以回复。而且
strotime
不懂d/m/Y格式,只好用
mktime
啊,好电话,对不起。我仍然认为你的意思是>时间()。@tandu不,我的意思是