Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana Mengeluarkan Hari dalam Minggu dengan Cekap daripada Nombor Minggu Diberi dalam PHP?

Bagaimana Mengeluarkan Hari dalam Minggu dengan Cekap daripada Nombor Minggu Diberi dalam PHP?

DDD
DDDasal
2024-10-26 11:03:02169semak imbas

How to Efficiently Extract Days of the Week from a Given Week Number in PHP?

Mengekstrak Hari Dalam Minggu daripada Nombor Minggu Diberi

Mengira hari individu yang jatuh dalam minggu tertentu, diberi nombor minggu yang sepadan , adalah tugas biasa dalam aplikasi berasaskan masa. Panduan ini menyediakan penyelesaian untuk perkara ini dalam PHP menggunakan fungsi tarikh, strtotime dan mktime.

Pelaksanaan PHP

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

Coretan kod ini mula-mula memulakan nombor minggu dan tahun yang sepadan. Kemudian, ia berulang melalui hari dalam seminggu, bermula dari Isnin (hari 1) dan berakhir dengan Ahad (hari ke-7). Untuk setiap hari, ia mengira tarikh yang sepadan menggunakan fungsi strtotime dan mencetaknya dalam format m/d/Y.

Fungsi PHP Tambahan

Sebagai alternatif, PHP lain fungsi, week_from_monday, boleh digunakan untuk mendapatkan tarikh untuk minggu tertentu, bermula dari hari Isnin. Fungsi ini mengambil rentetan tarikh dalam format DD-MM-YYYY sebagai hujah dan mengembalikan tatasusunan tarikh untuk minggu yang sepadan.

<code class="php"><?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;
}

$date = '07-10-2008';
$dates = week_from_monday($date);
print_r($dates);
?></code>

Fungsi yang dipertingkatkan ini membolehkan lebih fleksibiliti dalam mendapatkan semula tarikh sesuatu minggu, diberikan tarikh tertentu dalam minggu tersebut.

Atas ialah kandungan terperinci Bagaimana Mengeluarkan Hari dalam Minggu dengan Cekap daripada Nombor Minggu 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