2016-12-11 74 views
0

我的要求:幾個日期的比較次

  • 如果時間是19點30分00秒和8時00分00秒之間回聲10
  • 否則呼應3

我應該如何更改我的代碼以符合這些要求?

DEMO:https://3v4l.org/tpauu

<?php 

//$today_dt = new DateTime(date("H:i:s")); 
//$today_dt = new DateTime(date("01:00:00")); **** Different result!! 
$today_dt = new DateTime(date("01:00:00")); //**** Different result!! 
$expire_dt1 = new DateTime(date("19:30:00")); 
$expire_dt2 = new DateTime(date("08:00:00")); 
if ($today_dt < $expire_dt1 && $today_dt < $expire_dt2){ 
    $DateEnd = strtotime(date('10:30:00')); 
    echo '10'; 
}else{ 
    $DateEnd = strtotime(date('H:i:s')." +3 hour"); 
    echo '3'; 
} 
echo '<br>'.date('H:i:s',$DateEnd); 

?> 
+0

變化'$ today_dt <$ expire_dt1 && $ today_dt <$ expire_dt2'到'$ today_dt> $ expire_dt1 && $ today_dt < $ expire_dt2' – Blinkydamo

回答

0

在新的一天的開始...... $today_dt = new DateTime(date("01:00:00"));是第一位的,然後$expire_dt2 = new DateTime(date("08:00:00"));然後$expire_dt1 = new DateTime(date("19:30:00"));所以我認爲你必須作出適當的比較。 只是檢查它 var_dump($today_dt<$expire_dt1); var_dump($today_dt<$expire_dt2);都給人真實,var_dump($expire_dt1>$expire_dt2); also gives true.So makes the following comparison ..hope it will works..

//$today_dt = new DateTime(date("H:i:s")); 
//$today_dt = new DateTime(date("01:00:00")); **** Different result!! 
$today_dt = new DateTime(date("01:00:00")); //**** Different result!! 
$expire_dt1 = new DateTime(date("19:30:00")); 
$expire_dt2 = new DateTime(date("08:00:00")); 
// var_dump($today_dt<$expire_dt1); 
// var_dump($today_dt<$expire_dt2); 
// var_dump($expire_dt1>$expire_dt2); 
if ($today_dt > $expire_dt1 && $today_dt < $expire_dt2){ 
    $DateEnd = strtotime(date('10:30:00')); 
    echo '10'; 
}else{ 
    $DateEnd = strtotime(date('H:i:s')." +3 hour"); 
    echo '3'; 
} 
echo '<br>'.date('H:i:s',$DateEnd); 

詳見這裏http://php.net/manual/en/datetime.diff.php