Rumah >pembangunan bahagian belakang >tutorial php >Bagaimana untuk Menjana Susunan Tarikh Antara Dua Tarikh Diberi dalam PHP?

Bagaimana untuk Menjana Susunan Tarikh Antara Dua Tarikh Diberi dalam PHP?

DDD
DDDasal
2024-12-30 08:09:10181semak imbas

How to Generate an Array of Dates Between Two Given Dates in PHP?

Jana Susunan Tarikh Antara Dua Tarikh Ditentukan dalam PHP

Coretan kod PHP ini membantu anda mencapai tugas penting dalam manipulasi tarikh: menjana tatasusunan yang mengandungi semua tarikh dalam julat yang ditentukan. Kod ini berjaya mencapai ini dengan menukar julat tarikh yang diberikan kepada tatasusunan tarikh.

Input Jangkaan

Input yang dijangkakan untuk kod ini ialah sepasang tarikh dalam format 'YYYY-MM-DD'. Contohnya, jika anda ingin menjana tatasusunan tarikh antara 1 Oktober 2010 dan 5 Oktober 2010, inputnya ialah:

getDatesFromRange( '2010-10-01', '2010-10-05' );

Output Jangkaan

Output yang dijangkakan ialah tatasusunan yang mengandungi semua tarikh dalam julat yang ditentukan. Dalam contoh di atas, outputnya ialah:

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

Penyelesaian

Kod ini menggunakan dua pendekatan untuk menjana tatasusunan tarikh antara dua tarikh yang ditentukan:

  1. Menggunakan a Gelung:

    • Buat objek DateTime baharu untuk tarikh mula.
    • Lelaran dari tarikh mula hingga tarikh tamat, menambah hari demi satu setiap lelaran.
    • Tambahkan setiap tarikh pada tatasusunan.
  2. Menggunakan Kelas DatePeriod:

    • Buat objek DatePeriod baharu dengan tarikh mula dan tamat serta selang hari.
    • Lelaran pada objek DatePeriod menggunakan foreach gelung.
    • Tukar setiap objek DateTime kepada rentetan dalam format yang diingini.

Pelaksanaan Kod

function getDatesFromRange($startDate, $endDate) {
    $dates = array();

    // Convert the start and end dates to DateTime objects
    $startDateObj = new DateTime($startDate);
    $endDateObj = new DateTime($endDate);

    // Iterate from the start date to the end date, incrementing the day by one each iteration
    while ($startDateObj <= $endDateObj) {
        $dates[] = $startDateObj->format('Y-m-d');
        $startDateObj->add(new DateInterval('P1D'));
    }

    return $dates;
}

Contoh Penggunaan

$dates = getDatesFromRange('2010-10-01', '2010-10-05');
print_r($dates);

Output

Array ( [0] => 2010-10-01 [1] => 2010-10-02 [2] => 2010-10-03 [3] => 2010-10-04 [4] => 2010-10-05 )

Atas ialah kandungan terperinci Bagaimana untuk Menjana Susunan Tarikh Antara Dua Tarikh Diberi dalam 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