Conversion d'une date ...

Résolu
cs_chamallow Messages postés 363 Date d'inscription mercredi 18 mai 2005 Statut Membre Dernière intervention 29 janvier 2007 - 18 mai 2006 à 08:32
cs_chamallow Messages postés 363 Date d'inscription mercredi 18 mai 2005 Statut Membre Dernière intervention 29 janvier 2007 - 18 mai 2006 à 13:50
Bonjour ,

Je voudrais savoir s'il existe un moyen en PHP pour convertir un numéro de semaine (numéro de semaine de l'année) en date. C'est-à-dire qu'avec le numéro de semaine, je voudrais retrouver la date du premier jour de cette semaine là.
Par exemple, cette semaine nous sommes en semaine 20, je voudrais réussir à récupérer le premier jour de cette semaine 20, soit le 15/05/2006.

J'ai cherché dans la doc, et je n'ai rien vu permettant de faire une telle chose, alors il faut surement que j'y code à la main, n'est-ce-pas ??

Mais si c'est le cas, je vois plus trop comment faire là ... A part peut-être trouver le premier lundi de l'année, et puis après compter les semaines jusqu'à la mienne pour voir combien de jours sont passés et pour pouvoir calculer cette date.

Alors voilà, est-ce-que je suis dans le vrai ? Ou je me plante complètement ??

Merci d'avance pour vos réponses !

4 réponses

cs_chamallow Messages postés 363 Date d'inscription mercredi 18 mai 2005 Statut Membre Dernière intervention 29 janvier 2007 1
18 mai 2006 à 13:50
Voilà voilà, j'y suis arrivée à force de réfléchir à partir de ce qu'à donné Teclis01 (parce que ça marchait pas vraiment vraiment bien (enfin c'est pas ce que je voulais ))

Ca donne ça :

            $jourAvtSem1 = 0;
           
            $premierJourAnnee = getdate(mktime(0,0,0,1,1,$_POST['annee']));  //On récup la date du premier jour de l'année
            $int_ja = (($_POST['semaine'] - 1) * 7); //récupération du nombre de jours écoulés entre le 01/01 et le premier jour de la semaine demandée
           
           if($int_ja==0)
            {
                //Si le nb de jours écoulés vaut 0, alors on a choisi la 1° semaine de l'année :
                /* On teste le numéro du jour dans la semaine pour le premier jour de l'année (afin de savoir ça tombe quel jour) */
                switch ($premierJourAnnee['wday'])
                {
                    case 2 :
                        //Si c'est un mardi, alors on enlève un jour au nb écoulés pour qu'il y ait -1 jour qui se soit écoulé (car le lundi avant ce mardi fait parti de la semaine)
                        $int_ja = -1;
                        break;
                    case 3 :
                        $int_ja = -2;
                        break;
                    case 4 :
                        $int_ja = -3;
                        break;
                    case 0 :
                    //Si c'est dimanche, on ajoute un jour, car le premier jour de la semaine est toujours un lundi
                        $jourAvtSem1 = 1;
                        break;
                    case 5 :
                        $jourAvtSem1 = 3;
                        break;
                    case 6 :
                        $jourAvtSem1 = 2;
                        break;
                    case 1 :
                    default :
                        $jourAvtSem1 = 0;
                        break;
                }
            }
            else
            {
                switch ($premierJourAnnee['wday'])
                {
                    case 0 :
                        $jourAvtSem1 = 1;
                        break;
                    case 2 :
                        $jourAvtSem1 = -1;
                        break;
                    case 3 :
                        $jourAvtSem1 = -2;
                        break;
                    case 4 :
                        $jourAvtSem1 = -3;
                        break;
                    case 5 :
                        $jourAvtSem1 = 3;
                        break;
                    case 6 :
                        $jourAvtSem1 = 2;
                        break;
                    case 1 :
                    default :
                        $jourAvtSem1 = 0;
                        break;
                }
            }
            $semPremJour = date("W",mktime(0,0,0,1,1,$_POST['annee']));
            echo "1° semaine de l'année : ".$semPremJour."
";
            echo "Nb de jours écoulés : ".$int_ja."
";
            $str_date_semaine = date("d/m/Y", mktime(0,0,0,1,($jourAvtSem1+1)+$int_ja,$_POST['annee']));
            echo "premier jour de la semaine demandée : ".$str_date_semaine;

J'ai testé pour plusieurs années, pour les différents cas, et j'ai trouvé aucune erreur
3
malalam Messages postés 10839 Date d'inscription lundi 24 février 2003 Statut Membre Dernière intervention 2 mars 2010 25
18 mai 2006 à 09:24
Hello,

tu va devoir coder ça, il n'existe pas de fonction pour.
Ta solution est une solution comme une autre, en effet.
0
Teclis01 Messages postés 1423 Date d'inscription mardi 14 décembre 2004 Statut Membre Dernière intervention 29 décembre 2012 4
18 mai 2006 à 09:40
hannnn mechant adminnnn il ment !!!!

moi j ai trouvé ceci !!!

http://www.phpcs.com/codes/OUTILS-CONVERSION-DATE_13085.aspx

*lui tire la langue*

llooll

------------------------------------------------------------------------------------------------------------------
         Ilvaut
mieux poser une question et passer pour bête que le rester toutesa v
0
cs_chamallow Messages postés 363 Date d'inscription mercredi 18 mai 2005 Statut Membre Dernière intervention 29 janvier 2007 1
18 mai 2006 à 10:52
Ok merci à vous 2

J'essaye de m'inspirer de ça, mais c'est à se tirer les cheveux lol
0
Rejoignez-nous