Skip to main content
Version: v3.6.0


Count down to a target timestamp and call callbacks every second (or provided peried)​

Build Status


npm install --save @rooks/use-countdown

Importing the hook​

import useCountdown from "@rooks/use-countdown"


const endTime = new Date( + 10000);

function Demo() {
const count = useCountdown(endTime, {
interval: 1000,
onDown: time => console.log('onDown', time),
onEnd: time => console.log('onEnd', time),
return count;



ArgumentTypeDescriptionDefault value
endTimeDatethe time when the countdown should endundefined
options.intervalnumbermilliseconds that it takes count down once1000
options.onDownfunction(time) => {}, callback that would be called every intervalundefined
options.onEndfunction(time) => {}, callback that would be called when the countdown endsundefined

Return Value​

numberrest amount of intervals it takes to count down to the endTime