8791 sujets

Développement web côté serveur, CMS

Bonjour à tous!
Je viens vous solliciter car je souhaiterais afficher le premier et le dernier jour d'une semaine X.
Je dispose de deux variables, contenant l'une le numéro de la semaine et l'autre l'année.
J'ai déjà trouver des trucs sur Internet, mais ça me parait être une peu de la bidouille à utiliser des mktime du 1er janvier, et de la rajouter le nombre semaine etc...
Du coup je viens voir si quelqu'un aurait une solution propre et conventionnelle.
Merci d'avance.
Modifié par WyLLoU (05 Feb 2010 - 15:06)
Administrateur
Bonjour,

1/ merci de ne pas écrire en gris l'intégralité de ton sujet, surtout que le 1er message d'un sujet est forcément sur fond gris clair ... Il y a des malvoyants sur ce forum (et d'autres qui vont le devenir à force d'utiliser un portable dalle brillante) Smiley smile

2/ Je viens de regarder par curiosité la doc de mktime et il manque un truc sur les semaines (mais même si ça existait, comme la semaine commence le dimanche pour les anglo-saxons et le lundi pour nous ...). Perso je testerais déjà la fonction strtotime en construisant une chaîne comme "+WW week 2 days YYYY" où WW est le nombre de semaines, YYYY l'année et 2 days le lundi (si 1 day est le dimanche). Pour le dimanche, à voir si 8 days fonctionne sans effet de bord ou s'il faut manuellement gérer le cas général "rajouter 1 à la semaine et demander le jour 0", les années avec 52 ou 53 semaines en demandant soit la semaine 52 soit 53, faut-il incrémenter YYYY du coup, etc ? Smiley rolleyes
Modifié par Felipe (05 Feb 2010 - 13:02)
Salut,

à tester :
$semaine = 33;
$annee = 2010;
echo '<p>La semaine '.$semaine.' / '.$annee.' va du : '.date("d/m/Y", strtotime('First Monday January '.$annee.' +'.($semaine-1).' Week')).' au '.date("d/m/Y", strtotime('First Monday January '.$annee.' +'.$semaine.' Week -1 day')).'</p>';


Edit:on peut rajouter un preg_match sur l'année pour éviter les semaines incohérentes (à partir de 53 pour 2010).
Modifié par Heyoan (05 Feb 2010 - 13:40)
Heyoan a écrit :
Salut,

à tester :
$semaine = 33;
$annee = 2010;
echo '<p>La semaine '.$semaine.' / '.$annee.' va du : '.date("d/m/Y", strtotime('First Monday January '.$annee.' +'.($semaine-1).' Week')).' au '.date("d/m/Y", strtotime('First Monday January '.$annee.' +'.$semaine.' Week -1 day')).'</p>';


Edit:on peut rajouter un preg_match sur l'année pour éviter les semaines incohérentes (à partir de 53 pour 2010).



Ok! Je prends, ça fonctionne bien. Je gère déjà l'histoire des 53 ailleurs.
C'est nickel. Je vais étudier le truc pour comprendre ce que tu as fais.
Merci bien.
Felipe merci aussi, et désolé pour le gris.
Bonne journée!