Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimanakah saya boleh mengekstrak hari dalam seminggu dalam nombor minggu tertentu dalam PHP, bermula dengan hari Isnin?

Bagaimanakah saya boleh mengekstrak hari dalam seminggu dalam nombor minggu tertentu dalam PHP, bermula dengan hari Isnin?

Susan Sarandon
Susan Sarandonasal
2024-10-26 06:10:30373semak imbas

How can I extract the days of the week within a given week number in PHP, starting with Monday?

Mengira Hari Dalam Minggu Diberi Nombor Minggu

Masalah ini bertujuan untuk mengekstrak hari dalam seminggu dalam nombor minggu tertentu, khususnya bermula dengan hari Isnin.

Penyelesaian PHP

Kod PHP berikut boleh digunakan untuk mencapai pengiraan ini:

<code class="php">$week_number = 40;
$year = 2008;
for ($day = 1; $day <= 7; $day++) {
    printf('%s\n', date('m/d/Y', strtotime($year . "W" . $week_number . $day)));
}

Skrip ini menghasilkan yang berikut keluaran untuk minggu 40:

10/06/2008
10/07/2008
10/08/2008
10/09/2008
10/10/2008
10/11/2008
10/12/2008

Penyelesaian PHP Alternatif untuk Mengekstrak Tarikh dalam Seminggu

Di bawah ialah penyelesaian yang disesuaikan yang beroperasi secara berbeza sedikit:

<code class="php">function week_from_monday($date) {
    list($day, $month, $year) = explode('-', $date);

    $wkday = date('l', mktime('0', '0', '0', $month, $day, $year));

    switch ($wkday) {
        case 'Monday': $numDaysToMon = 0; break;
        case 'Tuesday': $numDaysToMon = 1; break;
        case 'Wednesday': $numDaysToMon = 2; break;
        case 'Thursday': $numDaysToMon = 3; break;
        case 'Friday': $numDaysToMon = 4; break;
        case 'Saturday': $numDaysToMon = 5; break;
        case 'Sunday': $numDaysToMon = 6; break;
    }

    $monday = mktime('0', '0', '0', $month, $day - $numDaysToMon, $year);

    $seconds_in_a_day = 86400;

    for ($i = 0; $i < 7; $i++) {
        $dates[$i] = date('Y-m-d', $monday + ($seconds_in_a_day * $i));
    }

    return $dates;
}

Fungsi ini menerima rentetan tarikh dalam format 'DD-MM-YYYY' dan menukarkannya kepada tatasusunan tarikh yang mewakili hari dalam minggu bermula dari hari Isnin. Sebagai contoh, menggunakan tarikh '07-10-2008' menghasilkan tatasusunan berikut:

Array
(
    [0] => 2008-10-06
    [1] => 2008-10-07
    [2] => 2008-10-08
    [3] => 2008-10-09
    [4] => 2008-10-10
    [5] => 2008-10-11
    [6] => 2008-10-12
)</code>

Atas ialah kandungan terperinci Bagaimanakah saya boleh mengekstrak hari dalam seminggu dalam nombor minggu tertentu dalam PHP, bermula dengan hari Isnin?. 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