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!