PHP 列出日期區間的 所有日期清單

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

  1. <?php
  2. function date_range($first, $last, $step = '+1 day', $format = 'Y-m-d')
  3. {
  4. $dates   = array();
  5. $current = strtotime($first);
  6. $last    = strtotime($last);
  7. while ($current <= $last) {
  8. $dates[] = date($format, $current);
  9. $current = strtotime($step, $current);
  10. }
  11. return $dates;
  12. }
  13. // test: print_r(date_range('2014-06-22', '2014-07-02'));
  14. ?>

PHP 版本大於 5.3.0, 可用此版本:

  1. <?php
  2. function date_range($first, $last)
  3. {
  4. $period = new DatePeriod(
  5. new DateTime($first),
  6. new DateInterval('P1D'),
  7. new DateTime($last)
  8. );
  9. foreach ($period as $date)
  10. $dates[] = $date->format('Y-m-d');
  11. return $dates;
  12. }
  13. // test: print_r(date_range('2014-06-22', '2014-07-02'));
  14. ?>

作者: Tsung

對新奇的事物都很有興趣, 喜歡簡單的東西, 過簡單的生活.

發表迴響

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料