J'ai un compteur qui montre 0 et je veux le cacher quand il devient 0. Donc, si le compteur montre (0 jours 6 heures 25 minutes) je veux qu'il soit (6 heures 25 minutes), cachez-le simplement sur 0 .. voici mon code:

<!DOCTYPE HTML>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1">
<style>
p {
  text-align: center;
  font-size: 60px;
  margin-top:0px;
}
</style>
</head>
<body>

<p id="demo"></p>

<script>
// Set the date we're counting down to
var countDownDate = new Date("April 12, 2018 15:37:25").getTime();

// Update the count down every 1 second
var x = setInterval(function() {

    // Get todays date and time
    var now = new Date().getTime();
    
    // Find the distance between now an 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 + "d " + hours + "h "
    + minutes + "m " + seconds + "s ";
    
    // If the count down is over, write some text 
    if (distance < 0) {
        clearInterval(x);
        document.getElementById("demo").innerHTML = "EXPIRED";
    }
}, 1000);
</script>

</body>
</html>

Merci de votre aide

2
DigiNet Events 12 avril 2018 à 09:26

4 réponses

Meilleure réponse

Vous pouvez utiliser l'opérateur ternaire pour vérifier si les jours == 0

document.getElementById("demo").innerHTML = ((days) ? days + "d " : '') + hours + "h " + minutes + "m " + seconds + "s ";

<!DOCTYPE HTML>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1">
<style>
p {
  text-align: center;
  font-size: 60px;
  margin-top:0px;
}
</style>
</head>
<body>

<p id="demo"></p>

<script>
// Set the date we're counting down to
var countDownDate = new Date("April 12, 2018 15:37:25").getTime();

// Update the count down every 1 second
var x = setInterval(function() {

    // Get todays date and time
    var now = new Date().getTime();
    
    // Find the distance between now an 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) ? days + "d " : '') + hours + "h "
    + minutes + "m " + seconds + "s ";
    
    // If the count down is over, write some text 
    if (distance < 0) {
        clearInterval(x);
        document.getElementById("demo").innerHTML = "EXPIRED";
    }
}, 1000);
</script>

</body>
</html>
2
Arkej 12 avril 2018 à 06:30

Si vous voulez le faire pour toutes vos sorties et montrer quelque chose comme 1d 0h 52m 0s pas comme 1d 52m alors la logique devrait être quelque chose comme:

// Output the result in an element with id="demo"
document.getElementById("demo").innerHTML = 
                         ((!days) ? '' : days + "d ") + 
                         ((!days && !hours) ? '' : hours + "h ") +
                         ((!days && !hours && !minutes) ? '' : minutes + "m ") + 
                         ((!days && !hours && !minutes && !seconds) ? '' : seconds + "s ";

De cette façon, les temps comme 0d 0h 52m 0s sont présentés comme 52m 0s

2
Dzak 12 avril 2018 à 06:50

Vous pouvez définir une condition lorsque vous modifiez l'heure dans document.getElementById("demo").innerHTML comme,

(days === 0 ? '' : days + "d ") +
(hours === 0 ? '' : hours + "h ")+
(minutes === 0 ? '' : minutes + "m ")+ 
 seconds + "s ";

Cela vérifiera la valeur zéro pour days, hours et minutes et attribuera null dans le code HTML,

// Set the date we're counting down to
var countDownDate = new Date("April 12, 2018 15:37:25").getTime();
// Update the count down every 1 second
var x = setInterval(function() {

    // Get todays date and time
    var now = new Date().getTime();
    
    // Find the distance between now an 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 === 0 ? '' : days + "d ") +
    (hours === 0 ? '' : hours + "h ")+
    (minutes === 0 ? '' : minutes + "m ")+ 
     seconds + "s ";
    
    // If the count down is over, write some text 
    if (distance < 0) {
        clearInterval(x);
        document.getElementById("demo").innerHTML = "EXPIRED";
    }
}, 1000);
p {
  text-align: center;
  font-size: 60px;
  margin-top:0px;
}
<p id="demo"></p>
1
Ankit Agarwal 12 avril 2018 à 06:41

Vous pouvez vérifier quand days === 0 et le remplir vide

days = days === 0 ? '' : days + "d "

// Output the result in an element with id="demo"
    document.getElementById("demo").innerHTML = days + hours + "h "
    + minutes + "m " + seconds + "s ";

La même chose avec les heures et les minutes

2
Tan Duong 12 avril 2018 à 06:28