Countdown affiche des NaN : NaN : NaN : NaN
Résolu/Fermé
lina-24
Messages postés
63
Date d'inscription
vendredi 6 novembre 2020
Statut
Membre
Dernière intervention
25 mars 2023
-
Modifié le 23 sept. 2021 à 18:01
lina-24 Messages postés 63 Date d'inscription vendredi 6 novembre 2020 Statut Membre Dernière intervention 25 mars 2023 - 23 sept. 2021 à 23:36
lina-24 Messages postés 63 Date d'inscription vendredi 6 novembre 2020 Statut Membre Dernière intervention 25 mars 2023 - 23 sept. 2021 à 23:36
A voir également:
- Nan-nan-nan date format
- Format epub - Guide
- Format dat - Guide
- Telecharger format factory - Télécharger - Conversion & Codecs
- Format apfs - Guide
- Hp format tool - Télécharger - Stockage
10 réponses
jordane45
Messages postés
38346
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
16 décembre 2024
4 717
23 sept. 2021 à 18:05
23 sept. 2021 à 18:05
Bonjour,
Récupère le contenu de ta variable php dans une variable JS puis regarde ce qu'elle contient avant d'essayer de t'en servir dans le reste du code js... ( autrement dit, découpe la ligne3 de ton js en deux ... puis utilise un IF dans ta fonction )
Récupère le contenu de ta variable php dans une variable JS puis regarde ce qu'elle contient avant d'essayer de t'en servir dans le reste du code js... ( autrement dit, découpe la ligne3 de ton js en deux ... puis utilise un IF dans ta fonction )
lina-24
Messages postés
63
Date d'inscription
vendredi 6 novembre 2020
Statut
Membre
Dernière intervention
25 mars 2023
4
23 sept. 2021 à 18:33
23 sept. 2021 à 18:33
je vous remercie pour votre réponse.
je ne suis pas forte en js , j'ai utilisé un if même résultat ça m’affiche des NaN : NaN : NaN : NaN plus 0000-00-00 00:00:00
S'il vous plaît pouvez-vous m'arranger le Code , je vous serais reconnaissante.
je ne suis pas forte en js , j'ai utilisé un if même résultat ça m’affiche des NaN : NaN : NaN : NaN plus 0000-00-00 00:00:00
S'il vous plaît pouvez-vous m'arranger le Code , je vous serais reconnaissante.
<?php if(count($info) > 0){ ?> <?php echo $date = ($p->promo); // Parse the string based on the expected format $dtime = DateTime::createFromFormat("Y-m-d H:i:s", $date); // Output the date to match the required format $timestamp = $dtime->format('F j, Y H:i'); ?> <p class="countdown-timer" id="demo"></p> <?php }else { ?> <em> Rien </em> <?php } ?>
jordane45
Messages postés
38346
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
16 décembre 2024
4 717
23 sept. 2021 à 18:50
23 sept. 2021 à 18:50
Rien à voir avec le javascript, là tu as fait un if en PHP...
En gros tu n'as pas tenu compte de ma réponse précédente
En gros tu n'as pas tenu compte de ma réponse précédente
lina-24
Messages postés
63
Date d'inscription
vendredi 6 novembre 2020
Statut
Membre
Dernière intervention
25 mars 2023
4
23 sept. 2021 à 19:02
23 sept. 2021 à 19:02
votre réponse est trop vague pour moi .
mon niveau en php & js sont vraiment très modeste Monsieur c'est pour ça que je sollicite de l'aide sur le forums ,
je vous remercie pour votre attention.
mon niveau en php & js sont vraiment très modeste Monsieur c'est pour ça que je sollicite de l'aide sur le forums ,
je vous remercie pour votre attention.
jordane45
Messages postés
38346
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
16 décembre 2024
4 717
Modifié le 23 sept. 2021 à 19:48
Modifié le 23 sept. 2021 à 19:48
Coté php :
Coté JS :
Bien sûr il y a d'autres façons de faire.
Vérifier, par exemple que ta variable days ne soit pas NaN en utilisant la fonction https://developer.mozilla.org/fr/docs/Web/JavaScript/Reference/Global_Objects/isNaN
<?php $date = $p->promo; if ( !empty($date) && strtotime($date) != '0000-00-00') { // Parse the string based on the expected format $dtime = DateTime::createFromFormat("Y-m-d H:i:s", $date); // Output the date to match the required format $timestamp = $dtime->format('F j, Y H:i'); }else{ $timestamp = ""; }
Coté JS :
// Set the date we're counting down to var cdate = "<?php echo $timestamp; ?>"; if(cdate !=""){ var countDownDate = new Date(cdate).getTime(); // Update the count down every 1 second var x = setInterval(function(){ // Get today's date and time var now = new Date().getTime(); // Find the distance between now and the count down date var distance = countDownDate - now; // Time calculations for days, hours, minutes and seconds var days = Math.floor(distance / (1000 * 60 * 60 * 24)); var hours = Math.floor((distance % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60)); var minutes = Math.floor((distance % (1000 * 60 * 60)) / (1000 * 60)); var seconds = Math.floor((distance % (1000 * 60)) / 1000); // Output the result in an element with id="demo" document.getElementById("demo").innerHTML = days + ": " + hours + " : " + minutes + ": " + seconds + " "; // If the count down is over, write some text if (distance < 0) { clearInterval(x); document.getElementById("demo").innerHTML = "EXPIRED"; } }, 1000); }
Bien sûr il y a d'autres façons de faire.
Vérifier, par exemple que ta variable days ne soit pas NaN en utilisant la fonction https://developer.mozilla.org/fr/docs/Web/JavaScript/Reference/Global_Objects/isNaN
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
lina-24
Messages postés
63
Date d'inscription
vendredi 6 novembre 2020
Statut
Membre
Dernière intervention
25 mars 2023
4
23 sept. 2021 à 20:14
23 sept. 2021 à 20:14
je vous remercie pour votre réponse , j'ai toujours pas résolu le problème !!
quand je récupère une date non valide de ma BD ex . ( 0000-00-00 00:00:00 ) ça m'affiche toujours des NaN : NaN : NaN : NaN ce que je veux c'est quand la date est ( 0000-00-00 00:00:00 ) ne rien afficher :(
quand je récupère une date non valide de ma BD ex . ( 0000-00-00 00:00:00 ) ça m'affiche toujours des NaN : NaN : NaN : NaN ce que je veux c'est quand la date est ( 0000-00-00 00:00:00 ) ne rien afficher :(
jordane45
Messages postés
38346
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
16 décembre 2024
4 717
23 sept. 2021 à 20:30
23 sept. 2021 à 20:30
Ah.. c'est un Dat'eTime pas juste une date ..
il te suffit de modifier le IF en PHP pour s'adapter à ce format la ..
il te suffit de modifier le IF en PHP pour s'adapter à ce format la ..
lina-24
Messages postés
63
Date d'inscription
vendredi 6 novembre 2020
Statut
Membre
Dernière intervention
25 mars 2023
4
23 sept. 2021 à 20:37
23 sept. 2021 à 20:37
déja testée ça ne marche pas !! quand je récupère une date non valide de m'a base de donné ex . ( 0000-00-00 00:00:00 ) ça m'affiche toujours des NaN : NaN : NaN : NaN mais quand la date est valide ça marche !!!!
$date = $p->promo; if ( !empty($date) && strtotime($date) != '0000-00-00 00:00:00') { // Parse the string based on the expected format $dtime = DateTime::createFromFormat("Y-m-d H:i:s", $date); // Output the date to match the required format $timestamp = $dtime->format('F j, Y H:i'); }else{ $timestamp = ""; }
jordane45
Messages postés
38346
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
16 décembre 2024
4 717
23 sept. 2021 à 20:48
23 sept. 2021 à 20:48
Fais moi un var_dump de ta variable date avant le if et montre-moi ce que ça te donne .
Et dans le javascript fais un console.log de la variable cdate et dis-moi ce que ça donne dans la console de ton navigateur
Et dans le javascript fais un console.log de la variable cdate et dis-moi ce que ça donne dans la console de ton navigateur
lina-24
Messages postés
63
Date d'inscription
vendredi 6 novembre 2020
Statut
Membre
Dernière intervention
25 mars 2023
4
23 sept. 2021 à 21:13
23 sept. 2021 à 21:13
étonnant sur Fierefox ça marche très bien je viens de le découvrir on allons ouvrir la console mais sur google chrome ça ne marche pas !!
jordane45
Messages postés
38346
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
16 décembre 2024
4 717
23 sept. 2021 à 21:47
23 sept. 2021 à 21:47
Il faut que tu vide le cache de ton navigateur....
Ton JavaScript n'a pas dû prendre en compte les modifications que tu y as fait
Ton JavaScript n'a pas dû prendre en compte les modifications que tu y as fait
lina-24
Messages postés
63
Date d'inscription
vendredi 6 novembre 2020
Statut
Membre
Dernière intervention
25 mars 2023
4
23 sept. 2021 à 21:57
23 sept. 2021 à 21:57
j'ai vider le cash ça ne fonctionne pas.
En fait, l' attribut datetime-local est plutôt nouveau dans la spécification HTML5 et l'implémentation diffère d'un navigateur à l'autre.
FireFox est plus permissif pour ce scénario particulier et affiche la date correctement. Chrome respecte la spécification et ne reconnaît pas le "mauvais" format de date.
En fait, l' attribut datetime-local est plutôt nouveau dans la spécification HTML5 et l'implémentation diffère d'un navigateur à l'autre.
FireFox est plus permissif pour ce scénario particulier et affiche la date correctement. Chrome respecte la spécification et ne reconnaît pas le "mauvais" format de date.
lina-24
Messages postés
63
Date d'inscription
vendredi 6 novembre 2020
Statut
Membre
Dernière intervention
25 mars 2023
4
23 sept. 2021 à 22:57
23 sept. 2021 à 22:57
SOLUTION PROPOSÉE sur un autre forum
La solution est de respecter la spécification w3c et d'utiliser la chaîne littérale « T » entre les parties date et heure. Comme ça
il me reste qu'a trouver une méthode pour formater la date
sur le forum il ont proposé le code suivant pour ma part je ne sais pas ou le placer dans mon code
La solution est de respecter la spécification w3c et d'utiliser la chaîne littérale « T » entre les parties date et heure. Comme ça
<input type="datetime-local" value="2018-02-25T19:24:23"/>
il me reste qu'a trouver une méthode pour formater la date
sur le forum il ont proposé le code suivant pour ma part je ne sais pas ou le placer dans mon code
@DateTimeFormat(pattern = "yyyy-MM-dd'T'HH:mm:ss") private Date createdAt;
jordane45
Messages postés
38346
Date d'inscription
mercredi 22 octobre 2003
Statut
Modérateur
Dernière intervention
16 décembre 2024
4 717
23 sept. 2021 à 22:59
23 sept. 2021 à 22:59
Comme je ne sais pas d'où sort cet input et que je ne vois pas le lien avec le code que tu as donné je ne saurais pas te répondre
lina-24
Messages postés
63
Date d'inscription
vendredi 6 novembre 2020
Statut
Membre
Dernière intervention
25 mars 2023
4
23 sept. 2021 à 23:36
23 sept. 2021 à 23:36
cet input est du coté admin du dashboard du site quand j'introduis un article nouveau je doit remplir mes champs pour les sauvegarder sur ma bd !
le input promo si je le laisse vide, sur ma bd ça me met automatiquement 0000-00-00 00:00:00
sur m'a bd le champs promo et de Type ( datetime ) j'ai du le changer en varchar null por ne plus avoir de 0000-00-00 00:00:00 , mais la le format de ma date a changer sur ma BD il y a « T » entre les parties date et heure quand je sélectionne une date ???? et null si je ne sélectionne pas la date promo.
ma question comment formatter une date de type yyyy-MM-dd'T'HH:mm:ss
je vous remercie pour votre attention :)
le input promo si je le laisse vide, sur ma bd ça me met automatiquement 0000-00-00 00:00:00
sur m'a bd le champs promo et de Type ( datetime ) j'ai du le changer en varchar null por ne plus avoir de 0000-00-00 00:00:00 , mais la le format de ma date a changer sur ma BD il y a « T » entre les parties date et heure quand je sélectionne une date ???? et null si je ne sélectionne pas la date promo.
ma question comment formatter une date de type yyyy-MM-dd'T'HH:mm:ss
je vous remercie pour votre attention :)