Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Mengira Hari dalam Seminggu dalam PHP Diberi Nombor Minggu atau Tarikh Tertentu?

Bagaimana untuk Mengira Hari dalam Seminggu dalam PHP Diberi Nombor Minggu atau Tarikh Tertentu?

Patricia Arquette
Patricia Arquetteasal
2024-10-27 01:41:30106semak imbas

How to Calculate the Days of a Week in PHP Given a Week Number or a Specific Date?

Mengira Hari Dalam Seminggu

Apabila diberi nombor minggu, seperti yang diperolehi dari tarikh -u %W, kita mungkin perlu mengira hari dalam minggu itu, bermula dari hari Isnin. Ini membolehkan kami menjana senarai tarikh tertentu dalam minggu itu.

Pelaksanaan PHP

Dalam PHP, kami boleh menggunakan gelung untuk menjana tarikh:

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

Output:

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

Mendapatkan Tarikh dari Tarikh Diberi

Pendekatan alternatif ialah mendapatkan tarikh minggu tertentu yang diberikan hari tertentu. Sebagai contoh, untuk mendapatkan tarikh minggu yang mengandungi 7 Oktober 2008:

<code class="php">function week_from_monday($date) {
    // Assuming $date is in format DD-MM-YYYY
    list($day, $month, $year) = explode("-", $date);

    // Get the weekday of the given 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;
    }

    // Timestamp of the Monday for that week
    $monday = mktime(0, 0, 0, $month, $day - $numDaysToMon, $year);

    $seconds_in_a_day = 86400;

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

    return $dates;
}

Output:

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 Bagaimana untuk Mengira Hari dalam Seminggu dalam PHP Diberi Nombor Minggu atau Tarikh Tertentu?. 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