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

Susan Sarandon
Lepaskan: 2024-10-26 06:10:30
asal
373 orang telah melayarinya

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)));
}
Salin selepas log masuk

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
Salin selepas log masuk

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;
}
Salin selepas log masuk

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>
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!