首頁 >後端開發 >php教程 >如何取得 PHP 陣列中兩個日期之間的所有日期?

如何取得 PHP 陣列中兩個日期之間的所有日期?

Susan Sarandon
Susan Sarandon原創
2024-12-23 04:02:14613瀏覽

How to Get All Dates Between Two Dates in a PHP Array?

PHP:返回數組中兩個日期之間的所有日期

給定兩個日期,常見任務是檢索該範圍內的所有日期。這可以透過 PHP 中的各種方法來實現。

方法 1:使用循環

最簡單的解決方案是使用循環遍歷指定範圍內的每一天。以下是範例:

<?php
function getDatesFromRange($start_date, $end_date) {
    $dates = array();

    $start = new DateTime($start_date);
    $end   = new DateTime($end_date);
    $end->add(new DateInterval('P1D'));

    $temp = $start;
    while ($temp <= $end) {
        $dates[] = $temp->format('Y-m-d');
        $temp->add(new DateInterval('P1D'));
    }

    return $dates;
}

方法 2:使用 DatePeriod 類別

PHP 也提供了 DatePeriod 類別來處理日期範圍。使用方法如下:

<?php
function getDatesFromRange($start_date, $end_date) {
    $period = new DatePeriod(
        new DateTime($start_date),
        new DateInterval('P1D'),
        new DateTime($end_date)
    );

    $dates = array();
    foreach ($period as $date) {
        $dates[] = $date->format('Y-m-d');
    }

    return $dates;
}

輸出

兩種方法都會傳回指定範圍內的日期數組,如預期輸出所示:

Array( '2010-10-01', '2010-10-02', '2010-10-03', '2010-10-04', '2010-10-05' )

以上是如何取得 PHP 陣列中兩個日期之間的所有日期?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn