2014-06-22 ~ 2014-06-25, 要列出這段區間的詳細日期有哪些?
- ex: 列出 2014-06-22, 2014-06-23, 2014-06-24, 2014-06-25
PHP 列出日期區間的 所有日期清單
本來要自己簡單寫寫, 後來想想這種應該很多人寫過了, 果然發現一些, 下面有兩種不錯的參考看看:
下述改寫自此篇: Generate range of dates in PHP
<?php function date_range($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; } // test: print_r(date_range('2014-06-22', '2014-07-02')); ?>
PHP 版本大於 5.3.0, 可用此版本:
- 註: 需要用到 PHP: DatePeriod - Manual (PHP 5 >= 5.3.0)
- 下述改寫自此篇: datetime - PHP: Return all dates between two dates in an array
<?php function date_range($first, $last) { $period = new DatePeriod( new DateTime($first), new DateInterval('P1D'), new DateTime($last) ); foreach ($period as $date) $dates[] = $date->format('Y-m-d'); return $dates; } // test: print_r(date_range('2014-06-22', '2014-07-02')); ?>