Bonjour,
Voila je rencontre un petit problème avec mon code.
Je souhaiterais pouvoir avoir un agenda qui permette de glisser sur 1 an et 3 mois et non 12 mois.
Dans le tuto : https://www.grafikart.fr/tutoriels/php/calendrier-php-157, l'agenda ne prend en compte que l'année en cours.
Ce qui fait que si nous somme en décembre, il faut attendre janvier pour basculer vers le janvier de l'année suivante.
De mon côté, mon calendrier s'affiche correctement, j'ai ajouté du jQuery pour récupérer le mois en cours et permettre la navigation que dans les 3 mois suivants la date en cours.
Je pense avoir deux choix mais je n'arrive pas à les mettre en place :
soit cela ce passe dans la valeur limite de while,
soit j'utilise une condition du genre -> Si la date en cours est égale à $year-12-01 alors j'ajoute 3 mois.
Merci d'avance pour votre aide,
<?php
class Date{
public $days = ['Lundi', 'Mardi', 'Mercredi', 'Jeudi', 'Vendredi', 'Samedi', 'Dimanche'];
public $months = ['Janvier', 'Février', 'Mars', 'Avril', 'Mai', 'Juin', 'Juillet', 'Aoùt', 'Septembre', 'Octobre', 'Novembre', 'Décembre'];
public function getAll($year){
$r = [];
$date = new DateTime($year.'-01-01');
while ($date->format('Y') <= $year){ // Solution 1 : Ajouter 3 mois à l'année en cours
$y = $date->format('Y');
$m = $date->format('n');
$d = $date->format('j');
$w = str_replace('0', '7', $date->format('w'));
$r[$y][$m][$d] = $w;
$date->add(new DateInterval('P1D'));
// Solution 2
// if(Si nous arrivons en décembre){
// ici j'ajoute 3 mois
// $date->add(new DateInterval('P3M'));
// }
}
return $r;
}
}