php if语句检查当前日期时间是否在两个日期时间列之间

php if语句检查当前日期时间是否在两个日期时间列之间,php,datetime,Php,Datetime,PostQopen和PostQClose是日期时间列。 我需要一个php if语句来检查当前日期时间是否在PostQopen和PostQClose列之间 $now = date('Y-m-d H:i:s'); if($rows['PostQopen'] >= '$now' && $rows['PostQClose'] < '$now' ){ echo "TRUE"; } else { echo "FALSE"; }; $now=date('Y-m-dh:

PostQopen和PostQClose是日期时间列。 我需要一个php if语句来检查当前日期时间是否在PostQopen和PostQClose列之间

$now = date('Y-m-d H:i:s');

if($rows['PostQopen'] >= '$now' && $rows['PostQClose'] < '$now' ){

echo "TRUE";

} else { 

echo "FALSE";

};
$now=date('Y-m-dh:i:s');
如果($rows['PostQopen']>='$now'&&$rows['PostQClose']<'$now'){
呼应“真”;
}否则{
呼应“假”;
};

从$now中删除单引号并使用
strotime()
。仍然没有
strotime()
,因为如果时间是
datetime格式,则可以
比较时间,因此代码可以工作

if(strtotime($rows['PostQopen']) >= strtotime($now) && strtotime($rows['PostQClose']) < strtotime($now) )
{
   echo "TRUE";
} 
else
{ 
   echo "FALSE";
}
if(strotime($rows['PostQopen'])>=strotime($now)和&strotime($rows['PostQClose'])
$now=date('Y-m-d H:i:s');
如果(strotime($rows['PostQopen'])>=strotime('$now')&&strotime($rows['PostQClose'])
检查这是否有效,strotime将给定的时间转换为毫秒格式,应该可以使用

$now=新日期时间(“now”);
$PostQopen=新日期时间($rows['PostQopen']);
$PostQClose=新日期时间($rows['PostQClose']);

如果($PostQopen>=$now&&$PostQClose使用
DateTime
查找两者之间的函数在此处:

function dateIsBetween($from, $to, $date="now") {
    $date = new \DateTime($date);
    $from= new \DateTime($from);
    $to = new \DateTime($to);
    if ($date >= $from && $date <= $to) {
        return true;
    }
    return false;
}
与其使用原生date()函数,不如使用DateTime对象,下面是您的示例,如果

NOW()在PostQopen和PostQclose之间

$now = new DateTime(date('Y-m-d H:i:s'));
$DateRange = array(
    'PostQopen'     => new DateTime($rows['PostQopen']),
    'PostQClose'    => new DateTime($rows['PostQClose']),
);
if (($DateRange['PostQopen'] <= $now) && ($DateRange['PostQClose'] > $now)) {
    echo "TRUE";
} else {
    echo "FALSE";
}
$now=newdatetime(日期('Y-m-dh:i:s');
$DateRange=数组(
'PostQopen'=>新日期时间($rows['PostQopen']),
“PostQClose”=>新日期时间($rows['PostQClose']),
);
if($DateRange['PostQopen']$now)){
呼应“真”;
}否则{
呼应“假”;
}

您不需要在“$now”周围使用单引号,请尝试删除它,看看是否能解决问题。这对我来说很有效。$now=date('Y-m-dh:i:s');$PostQopen=$rows['PostQopen'];$PostQClose=$rows['PostQClose'];if($now>=$PostQopen&&$now<$PostQClose){echo“TRUE”;};您应该避免使用strotime()并且改用DateTime,因为strotTime()有很多限制,在很多情况下不起作用。上面的解决方案不是介于两者之间,实际上不是介于两者之间。
function dateIsBetween($from, $to, $date="now") {
    $date = new \DateTime($date);
    $from= new \DateTime($from);
    $to = new \DateTime($to);
    if ($date >= $from && $date <= $to) {
        return true;
    }
    return false;
}
dateIsBetween('2016-02-24', '2016-02-26', '2016-02-25'); //would return true
dateIsBetween('2016-02-24', '2016-02-26', 'now'); //would return true if the current date would be between specified to, from
dateIsBetween('2016-02-24', '2016-02-26'); //would return true if the current date would be between specified to, from
$now = new DateTime(date('Y-m-d H:i:s'));
$DateRange = array(
    'PostQopen'     => new DateTime($rows['PostQopen']),
    'PostQClose'    => new DateTime($rows['PostQClose']),
);
if (($DateRange['PostQopen'] <= $now) && ($DateRange['PostQClose'] > $now)) {
    echo "TRUE";
} else {
    echo "FALSE";
}