週番号を指定した曜日の計算
日付 -u %W を使用して取得した週番号などを指定した場合コマンドを使用すると、その曜日に対応する日付を生成すると便利なことがよくあります。例から始めましょう。
2008 年の週番号 40 について考えてみましょう。ISO 8601 の週番号付けルールを使用すると、その週の日数は次のようになると予想されます。
2008-10-06 2008-10-07 2008-10-08 2008-10-09 2008-10-10 2008-10-11 2008-10-12
PHP 解決策:
PHP では、日付関数はさまざまな書式設定オプションを提供します。以下は、指定された週番号の曜日の日付を出力する単純なループです:
<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"; }
このループは、週の 7 日間を繰り返し、対応する日付を YYYY-MM-DD の形式で出力します。 .
指定された日付から曜日を計算するための PHP ソリューション:
別のシナリオでは、特定の日付から曜日を計算します。これを行う PHP 関数は次のとおりです。
<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; }
使用例:
<code class="php">$dates = week_from_monday('07-10-2008'); print_r($dates);
出力:
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>
以上がPHPで週番号または日付を指定して曜日を計算する方法は?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。