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

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

Linda Hamilton
Linda Hamiltonasal
2024-10-26 09:20:02458semak imbas

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

Mengira Hari Dalam Minggu Diberi Nombor Minggu

Diberi nombor minggu, seperti yang diperoleh menggunakan tarikh -u %W perintah, selalunya berguna untuk menjana tarikh yang sepadan untuk hari dalam minggu itu. Mari kita mulakan dengan contoh.

Pertimbangkan minggu nombor 40 tahun 2008. Menggunakan peraturan ISO 8601 untuk penomboran minggu, kami menjangkakan hari dalam minggu itu ialah:

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

Penyelesaian PHP:

Dalam PHP, fungsi tarikh menyediakan pelbagai pilihan pemformatan. Berikut ialah gelung ringkas yang mencetak tarikh untuk hari dalam nombor minggu tertentu:

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

Gelung ini berulang sepanjang 7 hari dalam seminggu dan mencetak tarikh yang sepadan dalam format: YYYY-MM-DD .

Penyelesaian PHP untuk Pengiraan Hari dalam Seminggu dari Tarikh Diberi:

Senario berbeza melibatkan pengiraan hari dalam seminggu diberikan tarikh tertentu. Berikut ialah fungsi PHP yang melakukan ini:

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

    // Get the weekday of the given date
    $wkday = date('l',mktime('0','0','0', $month, $day, $year));

    // Calculate the number of days to subtract to get Monday
    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;   
    }

    // Get timestamp of Monday
    $monday = mktime('0','0','0', $month, $day-$numDaysToMon, $year);

    // Calculate dates for 7 days from Monday
    $dates = array();
    $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;
}

Contoh penggunaan:

<code class="php">$dates = week_from_monday('07-10-2008');
print_r($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 Minggu Diberi Nombor atau Tarikh Minggu 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