58 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			58 lines
		
	
	
		
			1.2 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
---
 | 
						|
title: How to Create a Countdown Timer
 | 
						|
---
 | 
						|
## How to Create a Countdown Timer
 | 
						|
 | 
						|
### Creation
 | 
						|
Start by building the countdownTimer function.
 | 
						|
 | 
						|
```javascript
 | 
						|
function startCountdown(seconds){
 | 
						|
  var counter = seconds;
 | 
						|
 | 
						|
  var interval = setInterval(() => {
 | 
						|
    console.log(counter);
 | 
						|
    counter--;
 | 
						|
    
 | 
						|
 | 
						|
    if(counter < 0 ){
 | 
						|
      
 | 
						|
      // The code here will run when
 | 
						|
      // the timer has reached zero.
 | 
						|
      
 | 
						|
      clearInterval(interval);
 | 
						|
      console.log('Ding!');
 | 
						|
    };
 | 
						|
  }, 1000);
 | 
						|
};
 | 
						|
```
 | 
						|
 | 
						|
### Execution
 | 
						|
Now to start the timer we provide `startCountdown()` with a number value as an argument which represents the seconds to countdown.
 | 
						|
 | 
						|
```javascript
 | 
						|
  startCountdown(10);
 | 
						|
  // Console Output // 
 | 
						|
  // 10
 | 
						|
  // 9
 | 
						|
  // 8
 | 
						|
  // 7
 | 
						|
  // 6
 | 
						|
  // 5
 | 
						|
  // 4
 | 
						|
  // 3
 | 
						|
  // 2
 | 
						|
  // 1
 | 
						|
  // 0 
 | 
						|
  // Ding!
 | 
						|
```
 | 
						|
 | 
						|
### Live Example
 | 
						|
<a href='https://codepen.io/rdev-rocks/pen/jLogxY?editors=0012' target='_blank' rel='nofollow'>Codepen - Countdown Timer</a>
 | 
						|
 | 
						|
### More Resources
 | 
						|
Methods used:
 | 
						|
* <a href='https://developer.mozilla.org/en-US/docs/Web/API/WindowOrWorkerGlobalScope/setInterval' target='_blank' rel='nofollow'>setInterval()</a>
 | 
						|
* <a href='https://developer.mozilla.org/en-US/docs/Web/API/WindowOrWorkerGlobalScope/clearInterval' target='_blank' rel='nofollow'>clearInterval()</a>
 | 
						|
 |