intervalle de date découpé en semaine

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : intervalle de date découpé en semaine

Re: intervalle de date découpé en semaine

par @rthur » 12 janv. 2016, 15:14

(c'était une question de 2012, j'espère qu'il a trouvé une solution depuis 3 ans et demi ;) )

Re: intervalle de date découpé en semaine

par Robin Rumeau » 12 janv. 2016, 11:30

Bonjour à tous,

Si jamais, j'ai créé une méthode qui permet de créer un tableau multi-dimension qui représente chaque jour de chaque semaine par numéro de semaine pour une année donnée. C'est perfectible, mais elle fonctionne parfaitement.
Disponible ici : https://gist.github.com/robin69/f08f32dcc228025265d1

Bon code,
Robin

Re: intervalle de date découpé en semaine

par ticotacboum » 28 juin 2012, 16:07

J'ai réussi. Merci de votre aide. Je crois que ca fonctionne..
function date_semaine(){

$semaine_date_deb ="2011-05-07";
$semaine_date_fin = "2012-05-07";
$date1 = explode('-', $semaine_date_deb);
$semaine_date_deb = mktime(0,0,0,$date1[1],$date1[2],$date1[0]);
$date2 = explode('-', $semaine_date_fin);
$semaine_date_fin = mktime(0,0,0,$date2[1],$date2[2],$date2[0]);
$semaine = 7 * 24 * 60 * 60 ;

$i=$semaine_date_deb;

while($i<$semaine_date_fin){
$s=date('W',$i);
echo $s;
echo'<br>';
$i=$i+$semaine;

}
Merci à tous :) bonne journée

Re: intervalle de date découpé en semaine

par dix2 » 28 juin 2012, 15:37

en fait, l'idée, c'est d'obtenir la semaine/année de départ et ensuite le nombre de semaines entre les 2 dates
une fois que t'as ça, c'est du gâteau =D>
la semaine/année de départ, tu l'as avec la fonction date() et le parametre 'W'
le nombre de semaines entre les 2 dates, il faut faire un date_diff ()

@+
dix2

Re: intervalle de date découpé en semaine

par Mazarini » 28 juin 2012, 15:31

Tu dois pouvoir partir de la date de début et lui ajouter 7 * 24 * 60 * 60 soit 1 semaine jusqu'à arriver à la date de fin. A priori, tu devrais te caller sur des lundis pour avoir des semaines completes (cf date pour avoir le numéro du jour de la semaine).
Pour chaque date tu utilises le formatage pour avoir l'année et la semaine.

Il faut faire attention aux formats des date (cf doc) des différentes fonctions et faire un test qui inclus les changements d'heure. Il arrive qu'en ajoutant un jour, on se retrouve un jour trop tôt, mais à 23h au lieu de 0h.

Re: intervalle de date découpé en semaine

par ticotacboum » 28 juin 2012, 15:15

oui je suis dessus là. Le problème étant de limiter une année a 53 semaines.
function date_semaine(){

$semaine_date_deb =date("YW",  strtotime("2011-05-07"));
$semaine_date_fin = date("YW",  strtotime("2012-09-10"));


$annee_date_deb =date("Y",  strtotime("2011-05-07"));
$annee_date_fin = date("Y",  strtotime("2012-09-10"));

echo $semaine_date_deb;
 for ($i=$semaine_date_deb;$i<$semaine_date_fin;$i++){
	// if($i>53){
		// $i=1;
		// $annee_date_deb ++ ;
		// echo $i;
		// }
		
	 echo $i;echo '<br>';

 }

}
Ca me donne évidement beaucoup de résultat. Comme pour passer de 2011 a 2012 il va jusque 201199 avant de passer à
201200. Donc il va jusqu au centaine.

Re: intervalle de date découpé en semaine

par dix2 » 28 juin 2012, 14:55

salut,

regarde du côté de la fonction date avec comme parametre 'W'

par exemple : date('W') te donne 26 (la semaine courante)

le deuxieme parametre (la date) est optionnel (par défaut, c'est la date courante)

par ex : date('W', strtotime("2012-01-25"))

@+
dix2

intervalle de date découpé en semaine

par ticotacboum » 28 juin 2012, 13:59

Bonjour,

aaaaaaaahhh, j aurai bien besoin d'un petit coup de main.
Je voudrais faire une fonction à qui on donne deux dates, une date de début et une date de fin.
Cette fonction devrait retourner la liste des semaines entre ces dates en respectant le numéro de la semaine dans l année. ( ces deux dates ne sont pas forcément de la même année).
Si on lui donne le 8 janvier 2011 et le 15 janvier 2012 ça devrait donner un truc comme ça:

2011 ---------------------------------------------------------------- 2012
Semaine 2 , semaine 3 , semaine 4 ...... , semaine 52, semaine 1 , semaine 2, semaine 3

Après je vais chercher dans la base de données, la donnée correspondante en fonction de l année et de la semaine ( fonction week).

comment réaliser une telle fonction ?? Auriez vous des idées ??