我試圖混合幾個php函數來獲取多個日期範圍之間的所有日期。返回多個日期範圍之間的所有日期
首先,我使用的功能:
public function getDatesForArray($id){
return $this->sqlQuery("SELECT date_from, date_to FROM bn_prereservation WHERE
oid='".$id."' AND status='ACCEPT' ORDER BY date_from ASC");
}
從我的數據庫獲取所有數據範圍。而我得到這樣的:
Array
(
[0] => Array
(
[date_from] => 2016-12-05
[date_to] => 2016-12-08
)
[1] => Array
(
[date_from] => 2016-12-11
[date_to] => 2016-12-13
)
)
而接下來,我用第二個函數之間的數據範圍至極應該返回所有日期:
public function getReserv2($id){
$dates = $this->getDatesforArray($id);
$array = array();
foreach($dates as list($start, $end)) {
$format = 'Y-m-d';
$interval = new DateInterval('P1D');
$realStart = new DateTime($start);
$realEnd = new DateTime($end);
$realEnd->add($interval);
$period = new DatePeriod($realStart, $interval, ($realEnd));
foreach($period as $date) {
$array[] = $date->format($format);
}
}
return $array;
}
我想到,我得到這樣的:
2016-12-05
2016-12-06
2016-12-07
2016-12-08
2016-12-11
2016-12-12
2016-12-13
但我只得到:
2016-12-13
2016-12-13
任何想法?
'list'的問題/錯誤在這裏。我會給你寫一個答案。 – Jeff