Heim  >  Artikel  >  Backend-Entwicklung  >  Wie kann ich die Wochentage innerhalb einer bestimmten Wochennummer in PHP extrahieren, beginnend mit Montag?

Wie kann ich die Wochentage innerhalb einer bestimmten Wochennummer in PHP extrahieren, beginnend mit Montag?

Susan Sarandon
Susan SarandonOriginal
2024-10-26 06:10:30373Durchsuche

How can I extract the days of the week within a given week number in PHP, starting with Monday?

Berechnen der Wochentage anhand einer Wochennummer

Dieses Problem zielt darauf ab, insbesondere die Wochentage innerhalb einer bestimmten Wochennummer zu extrahieren Beginnend mit Montag.

PHP-Lösung

Der folgende PHP-Code kann verwendet werden, um diese Berechnung durchzuführen:

<code class="php">$week_number = 40;
$year = 2008;
for ($day = 1; $day <= 7; $day++) {
    printf('%s\n', date('m/d/Y', strtotime($year . "W" . $week_number . $day)));
}

Dieses Skript erzeugt Folgendes Ausgabe für Woche 40:

10/06/2008
10/07/2008
10/08/2008
10/09/2008
10/10/2008
10/11/2008
10/12/2008

Alternative PHP-Lösung zum Extrahieren von Daten innerhalb einer Woche

Unten finden Sie eine angepasste Lösung, die etwas anders funktioniert:

<code class="php">function week_from_monday($date) {
    list($day, $month, $year) = explode('-', $date);

    $wkday = date('l', mktime('0', '0', '0', $month, $day, $year));

    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;
    }

    $monday = mktime('0', '0', '0', $month, $day - $numDaysToMon, $year);

    $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;
}

Diese Funktion akzeptiert eine Datumszeichenfolge im Format „TT-MM-JJJJ“ und wandelt sie in ein Array von Datumsangaben um, die die Wochentage ab Montag darstellen. Wenn Sie beispielsweise das Datum „10.07.2008“ verwenden, erhalten Sie das folgende Array:

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 kann ich die Wochentage innerhalb einer bestimmten Wochennummer in PHP extrahieren, beginnend mit Montag?. 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