Portail PHP

Forum de discussion et d'aide au php

Vous n'êtes pas identifié.

Annonce

Regles d'utilisation des forums : pensez à toujours les respecter si vous désirez obtenir des réponses rapides.
FAQ : pensez à toujours chercher dedans si la réponse à votre question est dedans.
Proposez vos news : si vous avez un evenement à annoncer
le chat : venez discuter de php.
 

#1 27-11-2008 18:59:23

Azanek
Membre
Date d'inscription: 26-11-2008
Messages: 1

Calculer la date de demain

Bonjour à tous,

Pour un premier message ici, je vais passer pour un vrai débutant, et c'est vrai, je le suis, j'ai commencé le php la semaine dernière. Je ne doute pas que ce problème sera résolu en 2 lignes par des spécialistes.
J'ai commencer php avec un livre : "Je me lance en php mysql"

Un petit travail au début du livre me demande de faire écrire la date de demain.

Donc voici mon code :

Code:

<?php 
        //Tableau de conversion des mois
        $mois[1] = "janvier" ;
        $mois[2] = "février" ;
        $mois[3] = "mars" ;
        $mois[4] = "avril" ;
        $mois[5] = "mai" ;
        $mois[6] = "juin" ;
        $mois[7] = "juillet" ;
        $mois[8] = "août" ;
        $mois[9] = "septembre" ;
        $mois[10] = "octobre" ;
        $mois[11] = "novembre" ;
        $mois[12] = "décembre" ;
        
        //tableau de correspondance des jours
        $jour[0] = "dimanche";
        $jour[1] = "lundi";
        $jour[2] = "mardi";
        $jour[3] = "mercredi";
        $jour[4] = "jeudi";
        $jour[5] = "vendredi";
        $jour[6] = "samedi";        
        
        //On transforme le jour en chiffre en jour francais
        $jour_francais = $jour[date("w")];                
        //On recuper le mois en chiffre par rapport au mois courant
        $mois_chiffre = date("n");
        //On transforme le moi en chiffre en mois en francais
        $mois_francais = $mois[$mois_chiffre];
        //On prend le jour courant
        $jour = date("j");
        //On soustrait le mois et jour a année
        $annee_heure = date("Y, H:i:s");
        //On assemble le tout
        echo $jour_francais." ".$jour." ".$mois_francais." ".$annee_heure;
        
        //On récupere la date de demain en secondes depuis le 1er janvier 1970 
        // aujourd'hui + 3600*24
        $demain_secondes = time() + (3600 * 24);
        //Mois en chiffre
        $mois_chiffre_demain = date("n", $demain_secondes);
        //Mois en lettre
        $mois_lettre_demain = $mois[$mois_chiffre_demain];
        //Jour en lettre
        $jour_lettre_demain = $jour[date("w", $demain_secondes)];
        //Jour du mois
        $jour_mois_demain = date("j", $demain_secondes);
        //année
        $annee_demain = date("Y", $demain_secondes);
        //Afficher la date au format vendredi 3 juin 2008
        echo "Demain nous serons le ";
        echo $jour_lettre_demain." ".$jour_mois_demain." ".$mois_lettre_demain." ".$annee_demain;
        
        ?>

Le truc bizarre, c'est que c'est exactement ce qu'ils me disent d'écrire dans le livre, et pourtant voici ce que ça renvoi :

jeudi 27 novembre 2008, 19:02:19
Notice: Uninitialized string offset: 5 in D:\Guylou\Documents\InVivo\Site In Vivo\Sitetest2\pagephp\index.php on line 83
Demain nous serons le 28 novembre 2008

La ligne 83 en question :
$jour_lettre_demain = $jour[date("w", $demain_secondes)];

Après quelques essais divers, je me suis rendu compte que la conversion de jour en chiffre à jour en lettre s'aidant du tableau de conversion se fait pas.

Je n'aurais pas poser la question si le livre m'aurait donner la bonne réponse, mais je bloque. Je pourrais aussi faire semblant que tout va bien, mais je n'y arrive pas, si je comprends pas ça, alors pourquoi passer à la suite ? ^^

Merci.

Dernière modification par Azanek (27-11-2008 19:29:59)

Hors ligne

 

#2 07-12-2008 14:22:57

lolo3129
Moderateur
Lieu: Paris
Date d'inscription: 10-05-2005
Messages: 727
Site web

Re: Calculer la date de demain

hello,

le prolème vient de la ligne :

Code:

//On prend le jour courant
        $jour = date("j");

par cette ligne, tu écrases le tableau définit avant. Du coup, quand tu essaie d'accéder au 5ème élément du tableau, ça ne fonctionne pas.

Hors ligne