在php错误中比较时间

时间:2014-07-22 12:40:06

标签: php datetime

我试图将当前时间与其他5次作为时间表进行比较,但它无法正常工作。日期是从数据库中提取的,代码是

$now = new DateTime();
$date1 = new DateTime($pRow['date1']);
$date2 = new DateTime($pRow['date2']);

数据库中的日期: date1:​​12:00 date2:03:25

if($now->format('h:i') >= $date1->format('h:i') && $now->format('h:i') <= $date2->format('h:i')){
echo "date2";   
}
else{
echo "no";  
}

结果总是没有(代码编辑简单,解决问题的速度更快)

3 个答案:

答案 0 :(得分:1)

if($now >= $date5 && $now <= $date5)

错误的数据正在比较

答案 1 :(得分:0)

使用h修饰符时,您只需要1-12小时。这意味着下午2点仅为2点,上午11点是11点。因此,11> 2打破了你的数学。请改用H

$now = date("H:i",strtotime("now"));
$date1 = date("H:i",strtotime($pRow['date1']));
$date2 = date("H:i",strtotime($pRow['date2']));
$date3 = date("H:i",strtotime($pRow['date3']));
$date4 = date("H:i",strtotime($pRow['date4']));
$date5 = date("H:i",strtotime($pRow['date5']));

或者,更好的是,使用可比较的DateTime。

$now   = new DateTime();
$date1 = new DateTime($pRow['date1']);
$date2 = new DateTime($pRow['date2']);
$date3 = new DateTime($pRow['date3']);
$date4 = new DateTime($pRow['date4']);
$date5 = new DateTime($pRow['date5']);

答案 2 :(得分:0)

此代码已经在stackoverflow,尝试使用它:)

$ThatTime ="14:08:10";
if (time() >= strtotime($ThatTime)) {
  echo "The Time that was entered is behind";
}