Berechnen der Wochentage bei gegebener Wochennummer
Gegebenermaßen eine Wochennummer, wie sie beispielsweise mit dem Datum -u %W ermittelt wurde Befehl ist es oft sinnvoll, die entsprechenden Daten für die Tage dieser Woche zu generieren. Beginnen wir mit einem Beispiel.
Betrachten Sie Woche Nummer 40 des Jahres 2008. Unter Verwendung der ISO 8601-Regeln für die Wochennummerierung erwarten wir, dass die Tage in dieser Woche wie folgt lauten:
2008-10-06 2008-10-07 2008-10-08 2008-10-09 2008-10-10 2008-10-11 2008-10-12
PHP-Lösung:
In PHP bietet die Datumsfunktion verschiedene Formatierungsmöglichkeiten. Hier ist eine einfache Schleife, die die Daten für die Tage einer bestimmten Wochennummer ausgibt:
<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"; }
Diese Schleife durchläuft die 7 Wochentage und gibt die entsprechenden Daten im Format aus: JJJJ-MM-TT .
PHP-Lösung zur Berechnung der Wochentage ab einem bestimmten Datum:
Ein anderes Szenario beinhaltet die Berechnung der Wochentage zu einem bestimmten Datum. Hier ist eine PHP-Funktion, die dies tut:
<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; }
Beispielverwendung:
<code class="php">$dates = week_from_monday('07-10-2008'); print_r($dates);
Ausgabe:
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>
Das obige ist der detaillierte Inhalt vonWie berechnet man die Wochentage anhand einer Wochennummer oder eines Datums in PHP?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!