Countdown affiche des NaN : NaN : NaN : NaN
Résolu
lina-24
Messages postés
63
Date d'inscription
Statut
Membre
Dernière intervention
-
lina-24 Messages postés 63 Date d'inscription Statut Membre Dernière intervention - 23 sept. 2021 à 23:36
lina-24 Messages postés 63 Date d'inscription Statut Membre Dernière intervention - 23 sept. 2021 à 23:36
A voir également:
- Nan-nan-nan date format
- Format epub - Guide
- Format factory - Télécharger - Conversion & Codecs
- Format apfs - Guide
- Hp usb disk storage format tool - Télécharger - Stockage
- Format doc - Guide
10 réponses
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 )
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 } ?>
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.
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
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 :(
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 = ""; }
é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 !!
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.
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;
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 :)