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

Linda Hamilton
Lepaskan: 2024-10-26 09:20:02
asal
457 orang telah melayarinya

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

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

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

Contoh penggunaan:

<code class="php">$dates = week_from_monday('07-10-2008');
print_r($dates);
Salin selepas log masuk

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

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!

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!