2016-06-09 102 views
-1

這裏是我的代碼(使用laravel)PHP日期時間和間隔意外的行爲

$start = '05-01-2016'; 
$end = '05-03-2016'; 
$start_date = new Carbon; 
$end_date = new Carbon; 
$format = 'm-d-Y'; 
$begin = Carbon::createFromFormat($format, $start); 
$begin->setTime(0, 0, 0); 
$end = Carbon::createFromFormat($format, $end); 
$end->setTime(59, 59, 59); 
//dd($begin,$end); 
$interval = new \DateInterval('P1D'); 
$dateRange = new \DatePeriod($begin, $interval, $end); 
foreach ($dateRange as $date) { 
    $start_time = $start_date->setDateTime($date->format("Y"), $date->format("m"), $date->format("d"), 0, 0, 0)->toDateTimeString(); 
    $end_time =$end_date->setDateTime($date->format("Y"), $date->format("m"), $date->format("d"), 23, 59, 59)->toDateTimeString(); 
    var_dump($start_time); 
    //var_dump($end_time); 
} 

預計產出將是(ATLEAST我)

05-01-2016 
05-02-2016 

它實際上給了我

05-01-2016 
05-02-2016 
05-03-2016 
05-04-2016 
05-05-2016 

我無法理解它...任何幫助表示讚賞

這裏輸出 enter image description here

+0

是一個錯誤?否則,有人會回覆我,直到現在 –

+0

誰投了票,值得一個solute,因爲我值得這個..我花了一個小時,最後由下面的夢幻般的人的幫助弄清楚.. –

回答

1

你設置59小時:) - 這是兩天以上。現在,你的最終日期時間是Thu, 05 May 2016 11:59:59

$end->setTime(59, 59, 59); 

設置23小時,將工作

$end->setTime(23, 59, 59); 
+0

該死的該死的該死的我.....我不會相信那是我......謝謝兄弟......我在牆上撞到了我的腦袋...... –

+0

這樣的錯誤確實很難找到。需要一個新的看看:) – splash58

+0

你真的是正確的兄弟...它花了至少一個小時......我甚至開始懷疑,可能是它的一個錯誤......但錯誤在我的眼睛和代碼...不是在DateTime或間隔:(無論如何,我真的欠這 –