[PHP]Générer un tableau de dates hebdomadaire

Fermé
xramber - 22 juin 2010 à 15:58
 xramber - 28 juin 2010 à 12:32
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 :
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:

3 réponses

Defouille Messages postés 388 Date d'inscription mercredi 13 janvier 2010 Statut Membre Dernière intervention 15 novembre 2011 54
25 juin 2010 à 09:40
Bonjour j'ai trouvé sur internet ce code qui permet apparement de faire ce que veux :
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 :)
3
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 :)
0
Effectivement je viens de la tester et elle fonctionne nickel! Merci à toi!
0
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
0
Leviathan49 Messages postés 257 Date d'inscription jeudi 10 juin 2010 Statut Membre Dernière intervention 22 juillet 2011 70
24 juin 2010 à 18:04
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 ?
0