[PHP]Générer un tableau de dates hebdomadaire
xramber
-
xramber -
xramber -
Bonjour,
Devant la limitation du nombre de caractères saisis pour le titre, je vais expliciter un peu plus mon idée dans ce post:
- Ce que je souhaite, c'est obtenir une fonction permettant de récupérer un tableau de 7 éléments correspondant au différents jours de la semaine (lundi, mardi...dimanche au format DD/MM/YYYY si possible), grâce au numéro de semaine (semaine 1 à semaine 52/53) et à l'année que j'aurais rentré en paramètre.
Quelque chose comme sa :
- Cependant, je me retrouve face à de nombreuses difficultés, à savoir qu'il y a des années de 52 et de 53 semaines, des années bissextiles, dans un numéro de semaine il peut avoir 2 mois qui se chevauchent, j'en passe et des meilleures...
Voila je me demande si c'est faisable car je n'ai actuellement pas trouvé de réponse satisfaisante qui puisse m'aider à réaliser cette fonction.
Merci d'avance pour votre aide.
Devant la limitation du nombre de caractères saisis pour le titre, je vais expliciter un peu plus mon idée dans ce post:
- Ce que je souhaite, c'est obtenir une fonction permettant de récupérer un tableau de 7 éléments correspondant au différents jours de la semaine (lundi, mardi...dimanche au format DD/MM/YYYY si possible), grâce au numéro de semaine (semaine 1 à semaine 52/53) et à l'année que j'aurais rentré en paramètre.
Quelque chose comme sa :
function TabSemaine ($numero_semaine, $annee) { //code correspondant à la fonction... }
- Cependant, je me retrouve face à de nombreuses difficultés, à savoir qu'il y a des années de 52 et de 53 semaines, des années bissextiles, dans un numéro de semaine il peut avoir 2 mois qui se chevauchent, j'en passe et des meilleures...
Voila je me demande si c'est faisable car je n'ai actuellement pas trouvé de réponse satisfaisante qui puisse m'aider à réaliser cette fonction.
Merci d'avance pour votre aide.
A voir également:
- [PHP]Générer un tableau de dates hebdomadaire
- Tableau word - Guide
- Trier un tableau excel - Guide
- Tableau ascii - Guide
- Imprimer un tableau excel - Guide
- Nombre de jours entre deux dates excel - Guide
3 réponses
Bonjour j'ai trouvé sur internet ce code qui permet apparement de faire ce que veux :
Source : https://tzzz.wordpress.com/2006/08/14/8/
En espérant que ça t'aide :)
function getDaysInWeek ($weekNumber, $year) { // Count from '0104' because January 4th is always in week 1 // (according to ISO 8601). $time = strtotime($year . '0104 +' . ($weekNumber - 1). ' weeks'); // Get the time of the first day of the week $mondayTime = strtotime('-' . (date('w', $time) - 1) . ' days', $time); // Get the times of days 0 -> 6 $dayTimes = array (); for ($i = 0; $i < 7; ++$i) { $dayTimes[] = strtotime('+' . $i . ' days', $mondayTime); } // Return timestamps for mon-sun. return $dayTimes; } // TESTS : $dayTimes = getDaysInWeek(1, 2008); foreach ($dayTimes as $dayTime) { echo (strftime('%a %Y/%m/%d', $dayTime) . "<br/>"); }
Source : https://tzzz.wordpress.com/2006/08/14/8/
En espérant que ça t'aide :)
xramber
Ah elle m'a l'air pas mal ta fonction! Je la teste et je mets en résolue si c'est bel et bien le cas :)
xramber
Effectivement je viens de la tester et elle fonctionne nickel! Merci à toi!
Devant tant d'enthousiasme face à ce sujet, je me permets d'up ce sujet :)
(désolé de le faire mais je cette fonction bloque l'avancement de mon projet).
Merci pour vos éventuelles réponses
(désolé de le faire mais je cette fonction bloque l'avancement de mon projet).
Merci pour vos éventuelles réponses
J'ai trouvé ca sur un forum pour trouver la date du lundi de la semaine $week à toi de l'adapter :
Voilà la fonction qu'il vous faut pour déterminer le jour (par exemple le lundi) en fonction du numéro de la semaine. Pas besoin de boucles, et 3 lignes suffisent
/* Le 4 janvier est TOUJOURS la première semaine : $date correspond au 4 janvier 0h */
$date=mktime(0,0,0,1,4,$year);
/* On calcule le jour de la semaine qui correspond au 4 janvier. Valable uniquement depuis php5. Avec php4 il faut utiliser "w" et corriger : if ($jour_semaine==0) $jour_semaine=7; */
$jour_semaine=date("N",$date);
/* correspond au lundi 0h de la semaine $week */
$lundi=$date-86400*($jour_semaine-1)+604800*($week-1);
Simple non ?
Voilà la fonction qu'il vous faut pour déterminer le jour (par exemple le lundi) en fonction du numéro de la semaine. Pas besoin de boucles, et 3 lignes suffisent
/* Le 4 janvier est TOUJOURS la première semaine : $date correspond au 4 janvier 0h */
$date=mktime(0,0,0,1,4,$year);
/* On calcule le jour de la semaine qui correspond au 4 janvier. Valable uniquement depuis php5. Avec php4 il faut utiliser "w" et corriger : if ($jour_semaine==0) $jour_semaine=7; */
$jour_semaine=date("N",$date);
/* correspond au lundi 0h de la semaine $week */
$lundi=$date-86400*($jour_semaine-1)+604800*($week-1);
Simple non ?