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))); }
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
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; }
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>
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!