[PHP] - Problème de semaines

Résolu/Fermé
CrowCrow Messages postés 553 Date d'inscription mercredi 6 août 2008 Statut Membre Dernière intervention 6 août 2010 - 17 juil. 2009 à 10:38
 ciske - 9 juil. 2014 à 19:14
Bonjour,
voilà, j'ai un petit casse-tête avec une histoire de semaine.

Actuellement, j'ai un formulaire avec une liste déroulante contenant les numéros de semaines. Cependant, c'est pas très pratique, car ça nécessite d'avoir un calendrier sous la main pour s'y retrouver...

J'ai cherché une solution, mais sans résultat (peut-être que je n'ai pas cherché correctement)
J'ai bien tenter quelques bidouilles avec la fonction date() mais sans résultat.

Donc je me tourne vers vous en espérant trouver une solution.

Petite précision, pour facilité le tout, la période que doit gérer la liste s'étend de la dernière semaine d'Août à la deuxième semaine de Septembre (sois 55 semaines)

Merci d'avance pour vos réponses.
A voir également:

5 réponses

widi70 Messages postés 649 Date d'inscription jeudi 4 janvier 2007 Statut Membre Dernière intervention 22 juillet 2019 65
17 juil. 2009 à 10:55
bonjour, je ne voit pas trop ou est le problème, il te suffit d'ajouter la correspondance de chaque n° semaine par la date de celle-ci.
Au lieu d'afficher
semaine 1 tu affiche semaine 1 (du 29/12/08 au 05/01/09)
non?
0
CrowCrow Messages postés 553 Date d'inscription mercredi 6 août 2008 Statut Membre Dernière intervention 6 août 2010 42
17 juil. 2009 à 11:02
Certes je pourrais le faire à la main (enfin, c'est ce que j'ai compris de votre réponse). ça serait une solution facile si il n'y avait que la période 2009-2010. Mais je me vois ma le faire pour 2010-2011/2011-2012/2012-2013/2013-2014/etc...

Ce que je recherche c'est obtenir la date de début de semaine et de fin de semaine en fonction du numéro de semaine.
0
widi70 Messages postés 649 Date d'inscription jeudi 4 janvier 2007 Statut Membre Dernière intervention 22 juillet 2019 65
17 juil. 2009 à 11:58
ah oui pardon je ne voyait pas ça, comme ça.
J'ai trouvé ça si ça peut t'aider:
http://www.phpindex.com/index.php/2000/10/24/359-calcul-d-une-date-a-partir-du-numero-de-la-semaine
0
function get_debut_fin_from_week($week, $annee) {
$debut = mktime(0, 0, 0, 1, 4, $annee); // la semaine 1 est la semaine du 4 janvier
$jour = date('w', $debut);
if ($jour == 0) $jour = 7; // dimanche
$debut -= 3600 * 24 * ($jour - 1); // on se place le lundi de la semaine 1
$debut += (3600 * 24 * 7 * ($week - 1)); // lundi de la semaine $week
return "semaine du " . date('d/m/Y', $debut) . " au " . date('d/m/Y', $debut + 3600 * 24 * 6);
}
0
CrowCrow Messages postés 553 Date d'inscription mercredi 6 août 2008 Statut Membre Dernière intervention 6 août 2010 42
17 juil. 2009 à 12:50
Merci ^^
Mais je venais juste de trouver ce lien.
Normalement, il corresponds à ce que je veux faire. Mais je dois l'adapter aux templates Smarty pour pouvoir vérifier.

EDIT: Après test, c'est bien ce qu'il me faut. Merci de ton aide quand même :) Cependant pour obtenir le numéro de semaine que l'on peut retrouver sur les calendriers "cartons", il faut remplacer
strftime("%W",mktime(0,0,0,01,01,$year))==1

par
date("W",mktime(0,0,0,01,01,$year))==1
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
function get_debut_fin_from_week($week, $annee) {
$debut = mktime(0, 0, 0, 1, 4, $annee); // 4 janvier de l'année (semaine 1)
$jour = date('w', $debut);
if ($jour == 0) $jour = 7; // dimanche
$debut -= 3600 * 24 * ($jour - 1); // on se place le lundi de la semaine 1
$debut += (3600 * 24 * 7 * ($week - 1)); // lundi de la semaine $week
return "semaine du " . date('d/m/Y', $debut) . " au " . date('d/m/Y', $debut + 3600 * 24 * 6);
}
-1