php if语句检查当前日期时间是否在两个日期时间列之间
PostQopen和PostQClose是日期时间列。 我需要一个php if语句来检查当前日期时间是否在PostQopen和PostQClose列之间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:
$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";
}