Récupérer le nombre de semaines d'un mois
Posté : 02 avr. 2018, 14:50
Bonjour a tous,
Je fais un calendrier en php qui fonctionne sauf pour le mois de décembre. En effet le nombre de semaine ne correspond pas.
J'ai une classe avec l'année et le mois je sélectionne le premier jour
J'ai ensuite la fonction pour récupérer le nombre de semaine affiché dans une boucle.
mais le dump de la variable end et start donne
On voit qu'il me dis 1 weeks alors que pour les autres mois j'ai bien le bon nombre de lundi juqu'a la fin du mois.
Merci de votre aide.
Je fais un calendrier en php qui fonctionne sauf pour le mois de décembre. En effet le nombre de semaine ne correspond pas.
J'ai une classe avec l'année et le mois je sélectionne le premier jour
Code : Tout sélectionner
public function getStartingDay (): \DateTime {
return new \DateTime("{$this->year}-{$this->month}-01");
}
Code : Tout sélectionner
public function getWeeks() : int{
// begining month
$start = $this->getStartingDay();
//last day in the month
$end = (clone $start)->modify('+1 month -1 day');
$weeks = intval($end->format('W')) - intval($start->format('W')) + 1;
if($weeks < 0){
$weeks = intval($end->format('W'));
}
var_dump( $end);
return $weeks;
}Code : Tout sélectionner
string(26) "2018-12-31 00:00:00.000000" ["timezone_type"]=> int(3) ["timezone"]=> string(3) "UTC" } object(DateTime)#3 (3) { ["date"]=> string(26) "2018-12-01 00:00:00.000000" ["timezone_type"]=> int(3) ["timezone"]=> string(3) "UTC" } 1weeks"> object(DateTime)#3 (3) { ["date"]=> string(26) "2018-12-31 00:00:00.000000" ["timezone_type"]=> int(3) ["timezone"]=> string(3) "UTC" } object(DateTime)#4 (3) { ["date"]=> string(26) "2018-12-01 00:00:00.000000" ["timezone_type"]=> int(3) ["timezone"]=> string(3) "UTC" } object(DateTime)#5 (3) { ["date"]=> string(26) "2018-12-31 00:00:00.000000" ["timezone_type"]=> int(3) ["timezone"]=> string(3) "UTC" } object(DateTime)#4 (3) { ["date"]=> string(26) "2018-12-01 00:00:00.000000" ["timezone_type"]=> int(3) ["timezone"]=> string(3) "UTC" } Merci de votre aide.