Programme planning (dates)
Résolu
isa--
Messages postés
82
Date d'inscription
Statut
Membre
Dernière intervention
-
isa-- Messages postés 82 Date d'inscription Statut Membre Dernière intervention -
isa-- Messages postés 82 Date d'inscription Statut Membre Dernière intervention -
Bonjour à tous.
Après moult heures à chercher le pourquoi du comment de mon problème, je me résous à demander de l'aide, parfois un œil extérieur voit mieux...
Je fais un planning.
J'ai une première page pour choisir les bornes de mon planning (de mois x à mois y)
la page suivante génère toutes les dates entre ces deux bornes.
Tout marche à merveille et dans tous les cas, SAUF s'il y a le mois d'octobre (10), auquel cas j'ai 2x le 29...
J'ai tout re-testé, pas moyen d'en sortir...
Voici le script qui crée les bornes :
Voici la fonction qui crée le tableau des dates :
Après moult heures à chercher le pourquoi du comment de mon problème, je me résous à demander de l'aide, parfois un œil extérieur voit mieux...
Je fais un planning.
J'ai une première page pour choisir les bornes de mon planning (de mois x à mois y)
la page suivante génère toutes les dates entre ces deux bornes.
Tout marche à merveille et dans tous les cas, SAUF s'il y a le mois d'octobre (10), auquel cas j'ai 2x le 29...
J'ai tout re-testé, pas moyen d'en sortir...
Voici le script qui crée les bornes :
// calcul dernier jour $datepremierjour=$annee2."-".$mois2."-01"; list($annee, $mois, $jour) = explode('-',$datepremierjour); //recuperation du premier du mois suivant $date_mois_suivant = date("Y/m/d", mktime(0,0,0,$mois2+1,$jour,$annee)); list($annee, $mois2, $jour) = explode('/',$date_mois_suivant); //recuperation de la veille; donc le dernier du jour du mois précédent $end = date("Y-m-d", mktime(0,0,0,$mois2,$jour-1,$annee)); //premier jour $start=$annee1."-".$mois1."-01";
Voici la fonction qui crée le tableau des dates :
function eachDate ($start, $end) { $DateDepart = strtotime($start); $DateFin = strtotime($end); $NombreSecondes = $DateFin - $DateDepart; $NombreJours = $NombreSecondes / (3600*24); $ToutesDates = array(); for($i = 0; $i < $NombreJours+1; $i++) { $date = date('d', $DateDepart+((3600*24)*$i)); array_push($ToutesDates, $date); } return $ToutesDates; } foreach(eachDate($start, $end) as $date) { echo "<th>".$date."</th>\n";
A voir également:
- Programme planning (dates)
- Planning equipe - Télécharger - Outils professionnels
- Planning infirmier - Télécharger - Outils professionnels
- Nombre de jours entre deux dates excel - Guide
- Programme demarrage windows - Guide
- Message programmé iphone - Guide
1 réponse
yg_be
Messages postés
23541
Date d'inscription
Statut
Contributeur
Dernière intervention
Ambassadeur
1 584
bonsoir,
chez moi, ton code fonctionne parfaitement.
moi j'essaierais ceci:
chez moi, ton code fonctionne parfaitement.
moi j'essaierais ceci:
date = date('d', $DateDepart+((3600*24)*$i)+3600);
J'en étais à me dire que ça devait avoir à faire avec l'heure d'hiver.
Vu ta solution (qui marche parfaitement), c'était bien ça.
Ajouter une heure permet de ne pas retomber 2 fois sur le même jour..
Merci mille fois, tu m'as fait gagner un temps précieux.