我有以下的PHP函數,創建所有的日子的開始日期和結束日期之間的數組:PHP dateRange函數:如何在var中保存返回值?
function dateRange($first, $last, $step = '+1 day', $format = 'Y-m-d') {
$dates = array();
$current = strtotime($first);
$last = strtotime($last);
while($current <= $last) {
$dates[] = date($format, $current);
$current = strtotime($step, $current);
}
return $dates;
}
然後我用:
if (in_array($this_date,dateRange($start_date, $end_date))) {... do sth ...} else {... do sth else...}
現在我覺得最好的從數據庫中讀取日期時,在一個while循環中實現它。在數據庫中有幾個日期時間,我想在讀取行時創建一個包含所有行的數組,最後檢查in_array($ this_array_contains_all_date_ranges_from_db)。
如果我在使用dateRange($start_date,$end_date)
後嘗試打印$ array,它只返回一個空的「Array」。但是,如果我使用上面提到的if,它工作正常。另外,我試着$this_date_range=dateRange($start_date,$end_date);
但它也是空的......我不太瞭解函數,所以我無法弄清楚如何創建一個將包含所有日期範圍的變量?
非常感謝您提前! :)
哦,你是天才,謝謝Marc! :)我不知道,謝謝,現在這個作品... :) – Chris 2012-03-19 15:31:43
然而,它適用於返回一個變種,例如$ total_dates = dateRange($ start_date,$ end_date),但是,$ total_dates。= ...不起作用!?它只需要最後一個值...我怎樣才能給它添加多個值呢? – Chris 2012-03-19 15:39:33
如果你要返回一個數組,你必須使用數組符號,而不是字符串concatenation:'$ total_dates [] = dateRange()',或array_merge()等等。 – 2012-03-19 15:40:32