Rumah >pembangunan bahagian belakang >tutorial php >Bagaimana untuk Mendapatkan Semua Tarikh Antara Dua Tarikh dalam Tatasusunan PHP?

Bagaimana untuk Mendapatkan Semua Tarikh Antara Dua Tarikh dalam Tatasusunan PHP?

Susan Sarandon
Susan Sarandonasal
2024-12-23 04:02:14696semak imbas

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

PHP: Kembalikan Semua Tarikh Antara Dua Tarikh dalam Tatasusunan

Memandangkan dua tarikh, tugas biasa adalah untuk mendapatkan semua tarikh dalam julat itu . Ini boleh dicapai melalui pelbagai pendekatan dalam PHP.

Kaedah 1: Menggunakan Gelung

Penyelesaian yang paling mudah melibatkan penggunaan gelung untuk berulang setiap hari dalam julat yang ditentukan . Berikut ialah contoh:

<?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;
}

Kaedah 2: Menggunakan Kelas DatePeriod

PHP juga menyediakan kelas DatePeriod untuk mengendalikan julat tarikh. Begini cara anda boleh menggunakannya:

<?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;
}

Output

Kedua-dua kaedah mengembalikan tatasusunan tarikh dalam julat yang ditentukan, seperti yang ditunjukkan dalam output yang dijangkakan:

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

Atas ialah kandungan terperinci Bagaimana untuk Mendapatkan Semua Tarikh Antara Dua Tarikh dalam Tatasusunan PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn