[PHP] - Problème de semaines [Résolu/Fermé]

Signaler
Messages postés
553
Date d'inscription
mercredi 6 août 2008
Statut
Membre
Dernière intervention
6 août 2010
-
 ciske -
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.

5 réponses

Messages postés
649
Date d'inscription
jeudi 4 janvier 2007
Statut
Membre
Dernière intervention
22 juillet 2019
53
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?
Messages postés
553
Date d'inscription
mercredi 6 août 2008
Statut
Membre
Dernière intervention
6 août 2010
42
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.
Messages postés
649
Date d'inscription
jeudi 4 janvier 2007
Statut
Membre
Dernière intervention
22 juillet 2019
53
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
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);
}
Messages postés
553
Date d'inscription
mercredi 6 août 2008
Statut
Membre
Dernière intervention
6 août 2010
42
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
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);
}