IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Erreur de mktime


Sujet :

Langage PHP

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Septembre 2008
    Messages : 2
    Points : 2
    Points
    2
    Par défaut Erreur de mktime
    Bonjour,

    Après plus d'une heure de recherche, je me résoud à demander de l'aide... J'utilise la fonction mktime dans quelques uns de mes scripts. Dans un cas, cela crée systématiquement une erreur sans que j'arrive à comprendre la raison. Le code est vraiment simple (j'ai ajouté le numéros de ligne entre parenthése):

    /* Dans DateNaisanceBrute se trouve le string "19.11.1998" */

    (15) $DateArray = explode ( "." , $DateNaissanceBrute);
    (16) $Day = $DateArray[0];
    (17) $Month = $DateArray[1];
    (18) $Year = $DateArray[2];
    (19) echo "Day: " . $Day . "\n";
    (20) echo "Month: " . $Month . "\n";
    (21) echo "Year: " . $Year . "\n";
    (22) $test = mktime(0,*0,*0,*$Month,*$Day, $Year, -1);

    Si j'exécute le script ci-dessus en commentant la ligne 22, j'obtient l'affichage attendu:

    Day: 19
    Month: 11
    Year: 1998

    Si j'exécute le script avec la ligne 22, j'obtient:

    Parse error: syntax error, unexpected T_VARIABLE in /homez.41/jeunessc/www/verif_inscriptions_process.php on line 22

    Si je remplace la ligne 22 par la ligne suivante:
    $test = mktime(0, 0, 0, 11, 19, 1998, -1);

    ça passe sans erreur...

    Est-ce que quelqu'un arrive à expliquer un tel comportement ? Toute hypothèse est la bienvenue: je ne sais plus quoi faire ou quoi tester.

    Salutations et merci pour toute aide.

  2. #2
    Membre éprouvé
    Avatar de amoiraud
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2006
    Messages
    606
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Octobre 2006
    Messages : 606
    Points : 1 057
    Points
    1 057
    Par défaut
    Salut,
    Je sait pas si l'erreur vient de la mais pourquoi tu met des * devant les variables de ton mktime ?

    $test = mktime(0,*0,*0,*$Month,*$Day, $Year, -1);
    Essaye de les enlever, a part ca je vois pas d'autre erreure

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2008
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Septembre 2008
    Messages : 2
    Points : 2
    Points
    2
    Par défaut Merci pour l'aide et quelques compléments
    Bonjour,

    En effet, dans mon message, il y a des '*'... je ne m'en suis pas rendu compte, ils sont apparus lors du copier coller. Bien sûr ceux-ci n'apparaissent pas dans mon fichier texte original. Du coup, j'ai creusé un peu et compris le problème:

    Mon éditeur texte (TextWrangler) m'indique que mon fichier est en Western MacOS Roman alors qu'en pratique il est en UTF-8 (ou UTF-16, je ne sais pas). Chaque caractère prend deux bytes. Si je dump en hexa, on voit des caractères 0xA0. Lors du copier-coller, une partie de ceux-ci sont devenus des étoiles...

    Enfin bon... la solution est bien sûr de fore le fichier en mode ASCII pour garder un caractère par octet :-). Ensuite, tout va mieux.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Dates] Erreur de calcul avec la fonction mktime ?
    Par Xpertfly dans le forum Langage
    Réponses: 1
    Dernier message: 18/11/2008, 11h40
  2. [Dates] Erreur avec mktime()
    Par Chikh001 dans le forum Langage
    Réponses: 3
    Dernier message: 21/04/2008, 13h10
  3. Erreurs calculs avec mktime
    Par Sandara dans le forum Langage
    Réponses: 11
    Dernier message: 28/06/2006, 15h23
  4. [Dates] Erreur avec mktime
    Par Sandara dans le forum Langage
    Réponses: 7
    Dernier message: 21/06/2006, 16h14
  5. mktime me fait une erreur
    Par mail1789 dans le forum C++
    Réponses: 2
    Dernier message: 23/08/2005, 09h59

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo