Hallo,

Met Javascript heb ik een timer gemaakt die aftelt naar een specifieke datum.
In principe werkt het maar de tijdnotatie zou ik willen veranderen.
		<script type="text/javascript">
		window.addEventListener('load', function () {
			var test = new Date() . getTime();
			var enddate = new Date( "2021-04-24T00:00" ).getTime();
			var countdown = setInterval(function() {
				var datetime_now = new Date() . getTime();
				var time_left = enddate - datetime_now;
				var days = Math.floor(time_left / (1000 * 60 * 60 * 24));
				var hours = Math.floor((time_left % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));
				var minutes = Math.floor((time_left % (1000 * 60 * 60)) / (1000 * 60));
				var seconds = Math.floor((time_left % (1000 * 60)) / 1000);
				document.getElementById("counter").innerHTML = days + "d " + hours + ":"
	  + minutes + ":" + seconds;
				
				if (time_left < 0) {
					clearInterval(countdown);
					document.getElementById("counter").innerHTML = "Tijs is om";
				}
			}, 1000);
		});
		</script>


Op het moment dat de uren, minuten of de secondes minder dan 10 is, is de tijdnotatie bijvoorbeeld 1:12:32 (1 uur 12 min en 32 seconden) of 23:1:9 (23 uur 1 min en 9 seconden).

Wat ik graag zou willen is op het moment als het onder de 10 is en dus de tijd over gaat op 1 getal dat er een 0 voor staat.
Dan zouden bovenstaande tijden er zo uitzien
01:12:32
23:01:09

Werk ik dan met een if statement of kan dit op een andere / simpelere manier?
zie onderstaand script, dit geeft de tijd aan zoals je graag zou willen.

<script type="text/javascript">
        window.addEventListener('load', function () {
            var test = new Date() . getTime();
            var enddate = new Date( "2021-04-24T00:00" ).getTime();
            var countdown = setInterval(function() {
                var datetime_now = new Date() . getTime();
                var time_left = enddate - datetime_now;
                var days = Math.floor(time_left / (1000 * 60 * 60 * 24));
                var hours = Math.floor((time_left % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));
                var minutes = Math.floor((time_left % (1000 * 60 * 60)) / (1000 * 60));
                var seconds = Math.floor((time_left % (1000 * 60)) / 1000);
                hours	= hours < 10 ? "0" + hours : hours; //toegevoegd
		minutes = minutes < 10 ? "0" + minutes : minutes; //toegevoegd
        	seconds = seconds < 10 ? "0" + seconds : seconds; //toegevoegd
                document.getElementById("counter").innerHTML = days + "d " + hours + ":"
      + minutes + ":" + seconds;
                
                if (time_left < 0) {
                    clearInterval(countdown);
                    document.getElementById("counter").innerHTML = "Tijs is om";
                }
            }, 1000);
        });
</script>
Bert Lodewijks op 23/04/2021 01:11:17

document.getElementById("counter").innerHTML = "Tijs is om";


Bedoel je Tijs is omgelegd of tijd is om? :)

Jan

Gebruik deze functie :

function pad( num, size ) {
	var s = "0000" + num;
	return s.substr( s.length - size );
}


en verander dan dit :

var hours = Math.floor( ( time_left % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));


in dit :

var hours = pad( Math.floor( ( time_left % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60)), 2 );


Vergelijkbare regels ook aanpassen.

Kwam 27 uur geleden via dit :

https://www.google.com/search?q=javascript+opvullen+met+nullen

bij de uitleg :

http://domoticx.com/javascript-voorloopnullen-toevoegen-aan-een-getal/

Reageren