Heim  >  Artikel  >  Backend-Entwicklung  >  Wie berechnet man die Wochentage anhand einer Wochennummer oder eines Datums in PHP?

Wie berechnet man die Wochentage anhand einer Wochennummer oder eines Datums in PHP?

Linda Hamilton
Linda HamiltonOriginal
2024-10-26 09:20:02458Durchsuche

How to Calculate the Days of the Week Given a Week Number or Date in PHP?

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn