2017-06-13 17 views
0

私はPHPで2つの日付時刻をしましたとおり、私は下記のように、ループ内のすべての30分の時間を印刷したいPHP:ループ2つの日付の時間と分の違いを印刷

2017-06-14 13:00:00 
2017-06-30 20:00:00 

2017-06-14 13:00:00 
2017-06-14 13:30:00 
2017-06-14 14:00:00 
2017-06-14 14:30:00 
2017-06-14 15:00:00 
2017-06-14 15:30:00 
2017-06-14 16:00:00 
2017-06-14 16:30:00 
2017-06-14 17:00:00 
2017-06-14 17:30:00 
2017-06-14 18:00:00 
2017-06-14 18:30:00 
2017-06-14 19:00:00 
2017-06-14 19:30:00 
2017-06-14 20:00:00 

最終日6月30日まで。 whileループを使用して時差を印刷しています。私のコードを見てください。

$start_date = date("Y-m-d H:i:s", strtotime($_REQUEST["fromdate"]." ".$_REQUEST["fromtime"])); 
$end_date = date("Y-m-d H:i:s", strtotime($_REQUEST["todate"]." ".$_REQUEST["totime"])); 
while(strtotime($start_date) < strtotime($end_date)){ 
    $start_date = date("Y-m-d H:i:s", strtotime("+30 minutes", strtotime($start_date))); 
} 

時間と時間に関係なく1日中いつでも取得しています。私は午後1時から午後8時までしか時間が欲しくない。どんな助けもありがとう。

答えて

0

は次のように試してみてください事前に感謝します:

$start = new DateTime('2017-06-14 13:00:00'); 
$end = new DateTime('2017-06-30 20:00:00'); 
$startHour = $start->format('H'); 
$endHour = $end->format('H'); 

while ($start <= $end){ 
    $startDay = clone $start; 
    $startDay->setTime($startHour, 0, 0); 
    $endDay = clone $start; 
    $endDay->setTime($endHour, 0, 0); 

    if ($start >= $startDay && $start <= $endDay){ 
     echo $start->format('Y-m-d H:i:s') . '<br />'; 
    } 
    $start->modify('+30 minutes'); 
} 
+0

日付と時刻は、それがダイナミックになります固定されていないので、私が設定カント$ startDay->のsetTime(13,0,0); –

+0

私の答えが変わった –

+0

ありがとう –

関連する問題