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.