Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1063 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  [Résolu][PHP]récupérer tous les mercredis d'une période donnée

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Résolu][PHP]récupérer tous les mercredis d'une période donnée

n°2197210
brutax
Posté le 11-07-2013 à 20:32:00  profilanswer
 

Salut à tous  [:petrus75]  
 
Bon, voilà mon problème :
Il me faudrait une fonction qui pour deux dates données et un jour donné (lundi, mardi, mercredi...) me donne toutes les dates de ce jour sur cette période.
Par exemple, j'ai la période 20130101 (pour le premier janvier 2013) à 20130731 (pour le 31 juillet 2013) et j'aimerai tous les mercredis de cette période.
 [:transparency]  
 
Si vous avez des questions, n'hésitez pas !
 
Un grand merci.
 :D  :D  :D


Message édité par brutax le 17-07-2013 à 20:27:32
mood
Publicité
Posté le 11-07-2013 à 20:32:00  profilanswer
 

n°2197247
xaeon
Profil: TT
Posté le 12-07-2013 à 10:11:36  profilanswer
 

Hello,
 
la fonction strtotime permet de donner comme premier paramètre une chaine de type "Next Monday", à voir si tu peux faire une fonction qui parcours tes dates en y ajoutant 7 jours à chaque tour de boucle et qui appelle strtotime("Next Monday" ) pour te donner la date de ce jour :)

n°2197257
brutax
Posté le 12-07-2013 à 10:57:59  profilanswer
 

ah pas mal !
je vais regarder ça.
Je poste ma fonction quand j'ai trouvé.
Merci !

n°2197308
pop-pan
yay!
Posté le 12-07-2013 à 16:14:45  profilanswer
 

tu check quel jour est le premier
tu compte le nombre de jours entre debut et fin
tu fais une division entiere /7
tu arrondi au dessus ou en dessous en fonction de si tu c'est une fenetre inclusive ou exclusive
=> success


---------------
[VDS] rail vesa, bras ecran, support TV / [ACH] des machins
n°2197442
brutax
Posté le 14-07-2013 à 13:51:24  profilanswer
 

okay.
Merci :)

n°2197467
brutax
Posté le 15-07-2013 à 09:56:38  profilanswer
 

voilà ce que j'ai pu récupérer en posant la question à un de mes profs.
Je vais essayer de mettre en corélation vos réponses à tous les deux et celle là.
Je devrais pondre mon script dans la semaine.
a+
 

Citation :


il est possible de tester la correspondance entre la première  
date de la période et le jour à considérer :
si $DateStockee = '20130701'
- mktime(0,0,0,date('m', substr($DateStockee, 4, 2)),date('d',  
substr($DateStockee, 6, 2)),date('Y', substr($DateStockee, 0, 4)))
- Une boucle sur 0 à (60*60*24*6) au pas de (60*60*24) pour balayer les  
jours
- un test date('l', $DateDebut+$Index0) par rapport à date('l',  
$DateStockee) pour trouver l'égalité. Attention le résultat est en  
anglais 'Monday'
- ensuite une boucle sur 0 à $DateFin au pas de (60*60*24*7) pour  
récupérer toute les dates correspondant au jour de la semaine dans la  
période avec à chaque fois $DateDebut+$Index1 dans un tableau par  
exemple.

n°2197942
brutax
Posté le 17-07-2013 à 20:19:35  profilanswer
 

Alors, voici mon code :
avec comme variables post :
anneeb (année de début ex : 2013)
moisb (mois de debut ex : 02)
jourb (jour de début ex : 14)

 

Pareil pour anneef, moisf et jourf mais pour la fin.

 

jour_semaine c'est le jour de la semaine que je cherche.
Exemple : lundi=1, mardi=2 ... dimanche=7.

 
Code :
  1. <?php
  2. $i=mktime(0,0,0,$_POST['moisb'],$_POST['jourb'],$_POST['anneeb']);
  3. $j=mktime(0,0,0,$_POST['moisf'],$_POST['jourf'],$_POST['anneef']);
  4. //$pas c'est 1 jour en time stamp
  5. //$fin, c'est une semaine. En gros, on commencera la boucle à 0 et on testera
  6. //les jours 1 par 1 jusqu'à arriver à la fin des 7 jours de la semaine.
  7. $pas=60*60*24;
  8. $fin=$i+(60*60*24*6);
  9. //recherche du premier jour choisi de la période donnée
  10. //si on tombe sur le bon, on sort de la boucle
  11. for($deb=$i; $deb<= $fin; $deb+=$pas)
  12. {
  13.  if(date("N", $deb)==$_POST['jour_semaine'])
  14.  {
  15.   $premier=$deb;
  16.   break;
  17.  }
  18. }
  19. //ici, on a un pas de 7 jours, histoire de tomber tout le temps sur le même jour de la semaine.
  20. //par exemple, on sort tous les mercredis de la période choisie.
  21. $pas=60*60*24*7;
  22. //récupération de tous les jours choisis pour la période donnée
  23. for($premier; $premier <= $j; $premier+=$pas)
  24. {
  25.  echo date("l d-m-Y", $premier)."<br>";
  26. }
  27. ?>


Message édité par brutax le 17-07-2013 à 20:37:55

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  [Résolu][PHP]récupérer tous les mercredis d'une période donnée

 

Sujets relatifs
recuperer code retour jcl lance par rexx puis poursuivre[VB.NET] Récuperer une info d'un paquet
[RESOLU] chargement lien PHP par défaut : comment faire?Problème de création xml en PHP avec données d'une BD
Probléme PHPParsage XML vers tableau PHP
Stocker grand nombre d'objets / mauvaise structure de donnée ?[VBA Excel 2003] - Problème pour récupérer la 65537° ligne d'un CVS
Recuperer liste des documents 
Plus de sujets relatifs à : [Résolu][PHP]récupérer tous les mercredis d'une période donnée


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR