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

<?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
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'));
?>

作者: Tsung

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

發表迴響

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