Comment extraire efficacement les jours de la semaine à partir d'un numéro de semaine donné en PHP ?

DDD
Libérer: 2024-10-26 11:03:02
original
169 Les gens l'ont consulté

How to Efficiently Extract Days of the Week from a Given Week Number in PHP?

Extraire les jours de la semaine à partir d'un numéro de semaine donné

Calcul des jours individuels qui tombent dans une semaine spécifique, en fonction de son numéro de semaine correspondant , est une tâche courante dans les applications basées sur le temps. Ce guide fournit une solution à ce problème en PHP en utilisant les fonctions date, strtotime et mktime.

Implémentation PHP

<code class="php"><?php
$week_number = 40;
$year = 2008;
for ($day = 1; $day <= 7; $day++) {
    echo date('m/d/Y', strtotime($year . 'W' . $week_number . $day)) . "\n";
}
?></code>
Copier après la connexion

Cet extrait de code initialise d'abord le numéro de la semaine et l'année correspondante. Ensuite, il parcourt les jours de la semaine, en commençant par le lundi (jour 1) et en se terminant par le dimanche (jour 7). Pour chaque jour, il calcule la date correspondante à l'aide de la fonction strtotime et l'imprime au format m/d/Y.

Fonction PHP supplémentaire

Alternativement, un autre PHP La fonction week_from_monday peut être utilisée pour obtenir les dates d'une semaine donnée, à partir du lundi. Cette fonction prend une chaîne de date au format JJ-MM-AAAA comme argument et renvoie un tableau de dates pour la semaine correspondante.

<code class="php"><?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;
}

$date = '07-10-2008';
$dates = week_from_monday($date);
print_r($dates);
?></code>
Copier après la connexion

Cette fonction améliorée permet plus de flexibilité dans la récupération des dates d'un semaine, étant donné une date précise dans cette semaine.

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!

source:php.cn
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!