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

jQuery Discussion :

DateTime failed to parse time


Sujet :

jQuery

  1. #1
    Membre Expert
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 495
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 495
    Billets dans le blog
    1
    Par défaut DateTime failed to parse time
    Bonsoir,

    j'ai une erreur inattendue, qui ne se produisait pas quand j'étais en local avec wamp mais se produit quand je suis en ligne. Le message d'erreur est :
    Fatal error: Uncaught exception 'Exception' with message 'DateTime::__construct(): Failed to parse time string (0/0/) at position 3 (/): Unexpected character' in C:\wamp\www\eis\eis\calendar-pdo\includes\common.php on line 4
    suivi de
    Exception: DateTime::__construct(): Failed to parse time string (0/0/) at position 3 (/): Unexpected character in C:\wamp\www\eis\eis\calendar-pdo\includes\common.php on line 4
    Evidemment, pas de caractère '. Après simplification, le code qui génère cette erreur est
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <?php
    //function to know if a date corresponds to a public holiday day
    function isDayPublicHoliday1($date) {
    	$d = new DateTime($date);
    }
    ...
    (Même en simplifiant, l'erreur reste). Comment résoudre ce problème ?

  2. #2
    Membre chevronné
    Avatar de kalimukti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2011
    Messages
    262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

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

    Informations forums :
    Inscription : Octobre 2011
    Messages : 262
    Par défaut
    Comme ça, à priori, ça veut dire qu'une des chaines de caractère que tu envoie à ta fonction n'est pas bonne.
    C'est bien des chaines de caractère que tu lui envoies, pas des timestamp ?
    Bref, ça veut dire que l'erreur vient d'ailleurs, d'une partie de ton code qui envoie une date à ta fonction...
    Peut être une des dates envoyées nécessite un createFromFormat :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $datetime = new DateTime();
    $datetime->createFromFormat('d/m/Y', '23/05/2013');

  3. #3
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    Tu peux ajouter une gestion des exceptions sur cette fonction (quitte à la retirer ensuite si elle ne t'arrange pas), quelque chose du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    function isDayPublicHoliday1($date) {
    	try {
    		$d = new DateTime($date);
    	} catch (Exception $e) {
    		echo 'Exception : '.$e->getMessage().' pour le champ '.$date.'<br>';
    		echo 'At '.$e->getTraceAsString();
    		exit(1);
    	}
    }
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  4. #4
    Membre Expert
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 495
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 495
    Billets dans le blog
    1
    Par défaut
    Merci pour vos réponses !

    Comme le try/catch peut pas nuire, je le laisse mais il résout pas le problème...
    Pour vérifier que la date passée à la fonction était bien une chaîne et pas un timestamp, j'ai rajouté un var_dump et affirmatif.
    Du coup, j'ai enrichi le debug avec des echo et constaté un truc que je ne comprends pas : la date est générée par DatePicker :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
     
     
    <html>
    <head>
       <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
       <meta name="GENERATOR" content="Mozilla/4.76 [en] (X11; U; SunOS 5.8 sun4u) [Netscape]">
       ...
    	<link rel="stylesheet" href="http://code.jquery.com/ui/1.11.4/themes/smoothness/jquery-ui.css">
    	<script src="http://code.jquery.com/jquery-1.10.2.js"></script>
    	<script src="http://code.jquery.com/ui/1.11.4/jquery-ui.js"></script>
    	<link rel="stylesheet" href="/resources/demos/style.css">
    	<link rel="stylesheet" href="../../css/style.css">
    	<script>
            $(function() {
                    $( "#datepickerd" ).datepicker();
            });
            $(function() {
                    $( "#datepickerf" ).datepicker();
            });     
            </script>
     
    </head>
    <body>
    ...
     
     
    <h1>Ajout d'un événement</h1>
    <form action="page/calendar-pdo/admin/enterdata.php?lang=fr" method="POST">
    <span>Sélectionner l'événement :</span>
    <select name="event" size="1">
    <option>Congés</option>
    <option>Deplacement</option>
    <option>Formation</option></select>
    <table><tr><td>Date de début : </td><td> <input type="text" id="datepickerd" name="datepickerd"></td></tr>
    <tr><td>Date de fin :</td><td><input type="text" id="datepickerf" name="datepickerf" ></td></tr></table>
    <br/><input type="submit" value="OK"></form><br/><hr/>
    ...
    </body>
    </html>
    et la date de fin est correcte mais la date de début vaut (var_dump) :
    string '0/0/' (length=4)
    pourquoi ?

  5. #5
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    Au hasard : parce que tu n'as pas sélectionné de date de début ?

    C'est visiblement un problème avec le DatePicker de JqueryUi, je laisse le problème aux experts.
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  6. #6
    Membre Expert
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 495
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 495
    Billets dans le blog
    1
    Par défaut
    Ce cas est prévu :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
     
     
    if (($deb="")||($end=="")) {}
    else {
     
     
    list ($monthend,$dayend, $yearend)= explode("/", $end);	
    $dayend=$dayend+0; //addition of initial 0
    $monthend=$monthend+0; //addition of initial 0
    $end=$monthend."/".$dayend."/".$yearend;
    $_SESSION['end']=$end;
     
     
    list ($monthdeb,$daydeb, $yeardeb)= explode("/", $deb);	
    //to be equivalent to $end
    $daydeb=$daydeb+0; //addition of initial 0
    $monthdeb=$monthdeb+0; //addition of initial 0
    $deb=$monthdeb."/".$daydeb."/".$yeardeb;
    ...
    $date=$deb;
    if ($deb==$end) {
    		if ((isDayPublicHoliday1($date))
    ...

  7. #7
    Membre chevronné
    Avatar de kalimukti
    Homme Profil pro
    Développeur Web
    Inscrit en
    Octobre 2011
    Messages
    262
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

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

    Informations forums :
    Inscription : Octobre 2011
    Messages : 262
    Par défaut
    ca n'a peut-être rien à voir mais :

    Citation Envoyé par laurentSc Voir le message
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    if (($deb="")||($end=="")) {}
    c'est vraiment dans ton code ? ($deb="" est toujours = TRUE... ton test s'exécute tout le temps donc...)

  8. #8
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 660
    Billets dans le blog
    1
    Par défaut
    opérateur de test d'égalité => ==
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  9. #9
    Membre Expert
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 495
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 495
    Billets dans le blog
    1
    Par défaut
    du regard extérieur ! Un bug de débutant...

  10. #10
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Par défaut
    ~Cel part s'acheter une nouvelle paire de lunettes~
    Moi qui pensait que c'était un cafouillage au niveau du datepicker...
    Modératrice PHP
    Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)
    Cherchez un peu avant poser votre question : Cours et Tutoriels PHP - FAQ PHP - PDO une soupe et au lit !.

    Affichez votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur) et [C=php][/C]

  11. #11
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 217
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 217
    Par défaut
    Bonjour,
    Citation Envoyé par Celira
    ~Cel part s'acheter une nouvelle paire de lunettes~
    pas forcement néanmoins tu aurais du être sur tes gardes sur une question venant de l'imprévisible Laurent


  12. #12
    Membre Expert
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 495
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 495
    Billets dans le blog
    1
    Par défaut
    Mon bug a beau être gros, ce qui est bizarre, c'est que tant que j'étais en local ( Wamp), ça ne posait pas de problème...

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

Discussions similaires

  1. Quote et double quote
    Par aktos dans le forum Langage
    Réponses: 8
    Dernier message: 05/01/2007, 19h55

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