Maison > développement back-end > tutoriel php > Comment puis-je extraire les jours de la semaine dans un numéro de semaine donné en PHP, en commençant par lundi ?

Comment puis-je extraire les jours de la semaine dans un numéro de semaine donné en PHP, en commençant par lundi ?

Susan Sarandon
Libérer: 2024-10-26 06:10:30
original
512 Les gens l'ont consulté

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

Calcul des jours de la semaine à partir d'un numéro de semaine

Ce problème vise à extraire les jours de la semaine au sein d'un numéro de semaine donné, plus précisément à partir de lundi.

Solution PHP

Le code PHP suivant peut être utilisé pour réaliser ce calcul :

<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)));
}
Copier après la connexion

Ce script produit ce qui suit sortie pour la semaine 40 :

10/06/2008
10/07/2008
10/08/2008
10/09/2008
10/10/2008
10/11/2008
10/12/2008
Copier après la connexion

Solution PHP alternative pour extraire les dates en une semaine

Vous trouverez ci-dessous une solution adaptée qui fonctionne légèrement différemment :

<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;
}
Copier après la connexion

Cette fonction accepte une chaîne de date au format 'JJ-MM-AAAA' et la convertit en un tableau de dates représentant les jours de la semaine à partir du lundi. Par exemple, en utilisant la date « 07-10-2008 », vous obtenez le tableau suivant :

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>
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal