Maison >développement back-end >tutoriel php >Comment déterminer le numéro de semaine d'un jour dans un mois en PHP ?

Comment déterminer le numéro de semaine d'un jour dans un mois en PHP ?

DDD
DDDoriginal
2024-11-14 18:42:021011parcourir

How to Determine the Week Number of a Day Within a Month in PHP?

Comment déterminer le numéro de semaine d'un jour dans un mois en PHP

Déterminer le numéro de semaine d'un jour spécifique dans un mois peut être une tâche difficile. Cet article fournit une solution détaillée à ce problème en PHP, vous permettant d'identifier facilement le numéro de semaine pour une date donnée.

Solution :

La fonction PHP fournie, getWeeks(), calcule le nombre de semaines dans le mois pour une date spécifiée. Il prend deux paramètres :

  • $date : La date au format AAAA-MM-JJ.
  • $rollover : Le jour sur lequel la semaine se déroule (par exemple, "dimanche" ou "lundi").

La fonction fonctionne en extrayant d'abord l'année et le mois de la date et en calculant le nombre de jours entre la date spécifiée et le premier jour du mois. Il parcourt ensuite les jours du mois, vérifiant si chaque jour tombe le jour de basculement spécifié. Si tel est le cas, le nombre de semaines est incrémenté.

Exemple d'utilisation :

<?php

    /**
     * Returns the amount of weeks into the month a date is
     * @param $date a YYYY-MM-DD formatted date
     * @param $rollover The day on which the week rolls over
     */
    function getWeeks($date, $rollover)
    {
        $cut = substr($date, 0, 8);
        $daylen = 86400;

        $timestamp = strtotime($date);
        $first = strtotime($cut . "00");
        $elapsed = ($timestamp - $first) / $daylen;

        $weeks = 1;

        for ($i = 1; $i <= $elapsed; $i++)
        {
            $dayfind = $cut . (strlen($i) < 2 ? '0' . $i : $i);
            $daytimestamp = strtotime($dayfind);

            $day = strtolower(date("l", $daytimestamp));

            if($day == strtolower($rollover))  $weeks ++;
        }

        return $weeks;
    }


    //
    echo getWeeks("2011-06-11", "sunday"); //outputs 2, for the second week of the month
?>

Explication :

L'exemple ci-dessus appelle la fonction getWeeks() avec la date "2011-06-11" et le jour de basculement "dimanche". Le résultat est 2, indiquant que le 11 juin 2011 tombe dans la deuxième semaine de juin pour un basculement dimanche.

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:
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