Bonjour,
Je voudrais retrouver le mois correspondant à un numéro de semaine
par exemple je passerai en parametre la semaine "06" et cela devrait me renvoyer février en l'occurence 02.
merci d'avance pour votre aide
Bonjour,
Je voudrais retrouver le mois correspondant à un numéro de semaine
par exemple je passerai en parametre la semaine "06" et cela devrait me renvoyer février en l'occurence 02.
merci d'avance pour votre aide
salut
en semaine je ne sais pas trop
mais tu peux le faire avec les jours, ainsi convertir ton nombre de semaines en jours
ex:
6e semaines = 5*7+1 donc début à la 36e journée de l'année
de là, la fonction te retourne la date tu n'a qu'a prendre ce que tu veux comme information..
En espérant que ca t'ais aidé
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 $semaine = 6; $nbreJour = $semaine*7+1; //le nombre a ajouter; $dansXjours = date("d/m/Y", mktime(0, 0, 0, date("m"), date("d")+$nbreJours, date("Y"))); $arrayDate = explode("/",$dansXjours); $arrayDate[0] //Jour $arrayDate[1] //Mois $arrayDate[2] //Année
La perfection n'est pas un but, l'amélioration constante devrait l'être!
La position des Développeurs de developpez avec les explications
Bonjour,
Le code proposé ci-dessus ne peut pas fonctionner :
- il présume que le 1er janvier se trouve dans la semaine N° 1, ce qui est vrai pour 2007, mais, par exemple, ni pour 2006 (semaine 52) ou 2010 (semaine 53) ;
- les calculs sont effectués sur la date courante ;
D'autre part, une semaine peut se trouver à cheval sur 2 mois.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35 <?php $annee = 2007; $semaine = 6; $nbJour = ($semaine - 1 ) * 7; $timeStampPremierJanvier = mktime(0, 0, 0, 1, 1, $annee); //-- détermine le N° de semaine du 1er janvier de l'année recherchée -------------- $semainePremierJanvier = date('W', $timeStampPremierJanvier); //-- détermine le jour du 1er janvier de l'année recherchée ----------------------- $jourPremierJanvier = date('d', $timeStampPremierJanvier); //-- détermine le lundi de la semaine N° 1 ---------------------------------------- if ($semainePremierJanvier > 1) { $lundiSemaineUn = date('d', strtotime('next Monday', $timeStampPremierJanvier)); } elseif ($jourPremierJanvier > 1) { $lundiSemaineUn = date('d', strtotime('last Monday', $timeStampPremierJanvier)); } else { $lundiSemaineUn = date('d', $timeStampPremierJanvier); } //-- détermine le lundi de la semaine recherchée ---------------------------------- $debutSemaineCherche = date('Y-m-d', mktime(0, 0, 0, 1, $lundiSemaineUn + $nbJour, $annee)); //-- détermine le dimanche de la semaine recherchée ------------------------------- $finSemaineCherche = date('Y-m-d', strtotime('next Sunday', strtotime($debutSemaineCherche))); echo "la semaine <b>$semaine</b> de l'année <b>$annee</b> va du <b>$debutSemaineCherche</b> au <b>$finSemaineCherche</b><br />"; ?>
Salut
oui ton code est correct, mais bon est-ce la question ici, elle ne veux pas savoir de quel jours à quel jours, elle veut savoir la semaine 6 se trouve dans quelle mois
une semaine commence du dimanche au samedi donc on recherche ici le dimanche se trouve dans quel mois...ben d'après ce que j'ai compris de la question en 3 ligne
j'ai codé par rapport à cela, mais je ne comprends pas pk tu dis que mon code ne fonctionne pas..il fonctionne au contraire mais dépendant de la situation que tu l'utilises...
La perfection n'est pas un but, l'amélioration constante devrait l'être!
La position des Développeurs de developpez avec les explications
Non, la semaine ne va pas du dimanche au samedi, mais du lundi au dimanche (norme ISO 8601).
Et comme je l'ai dit plus haut :
Si je fais fonctionner ton code aujourd'hui, tel qu'il est proposé, pour la semaine N° 6, j'obtiens le 07-04-2007, ce qui est évidemment faux.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 Le code proposé ci-dessus ne peut pas fonctionner : 1. il présume que le 1er janvier se trouve dans la semaine N° 1, ce qui est vrai pour 2007, mais, par exemple, ni pour 2006 (semaine 52) ou 2010 (semaine 53) ; 2. les calculs sont effectués sur la date courante ;
Question :
Dans quel mois se trouve la semaine N° 9 de 2007 ?
Réponse :
En février ET en mars, car elle va du 26-02 au 04-03-2007.
Voilà pourquoi je donne la fourchette de dates. Après quoi, il ou elle en fait ce qu'il ou elle veut.
ouep tu a bien raison
anyway mon code marche pas, j'ai adapté un code d'ajouter X jours à la date actuelle sans trop faire attention
dsl pour l'incovénient
En y retouchant un peu j'ai fixé les erreurs ben pour mon code la (qui fonctionne pour ma situation, pas la tienne.... )
voilà c'est p-e un peu mieux
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 $semaine = 6; $nbreJour = $semaine*7+1; //le nombre a ajouter; $dansXjours = date("d/m/y",mktime(0, 0, 0, 1, $nbreJour, date("Y"))); $arrayDate = explode("/",$dansXjours); /* $arrayDate[0] //Jour $arrayDate[1] //Mois $arrayDate[2] //Année */ echo "la semaine 6 tombe dans le mois ".$arrayDate[1];
La perfection n'est pas un but, l'amélioration constante devrait l'être!
La position des Développeurs de developpez avec les explications
merci beaucoup pour votre aide precieuse
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager