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

Linda Hamilton
Freigeben: 2024-10-26 09:20:02
Original
571 Leute haben es durchsucht

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
Nach dem Login kopieren

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";
}
Nach dem Login kopieren

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;
}
Nach dem Login kopieren

Beispielverwendung:

<code class="php">$dates = week_from_monday('07-10-2008');
print_r($dates);
Nach dem Login kopieren

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>
Nach dem Login kopieren

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!

Quelle:php.cn
Erklärung dieser Website
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage