[React] 카운트 다운 함수 ( moment 라이브러리 사용 )
2021. 11. 2. 15:00ㆍReact
입력 시간을 받아 카운트 다운을 해주는 함수다.
moment 라이브러리를 사용해 구현하였음!
const countDownTimer = useCallback((date) => {
let _vDate = moment(date);
let _second = 1000;
let _minute = _second * 60;
let _hour = _minute * 60;
let _day = _hour * 24;
let timer;
function showRemaining() {
try {
let now = moment();
let distDt = _vDate - now;
if (distDt < 0) {
clearInterval(timer);
let HapDate = '0' + 'd ' + '0' + 'h ' + '0' + 'm ' + '0' + 's';
document.getElementById('timer').innerHTML = HapDate;
return;
}
let days = Math.floor(distDt / _day);
let hours = Math.floor((distDt % _day) / _hour);
let minutes = Math.floor((distDt % _hour) / _minute);
let seconds = Math.floor((distDt % _minute) / _second);
let HapDate = parseInt(days) + 'd ' + parseInt(hours) + 'h ' + parseInt(minutes) + 'm ' + parseInt(seconds) + 's';
document.getElementById('timer').innerHTML = HapDate;
}
catch (e) {
console.log(e);
}
}
timer = setInterval(showRemaining, 1000);
}, []);
위 함수를 아래에서 불러 사용한다.
<span id="timer">{countDownTimer('2021-11-15')}</span>
아래와 같은 카운트 다운 기능이 구현됐다.
'React' 카테고리의 다른 글
[React] HOC 고차 컴포넌트 (0) | 2022.08.26 |
---|---|
[React] SEO (Search Engin Optimiztion) (0) | 2022.01.27 |
[React] 환경변수 사용하기 (0) | 2021.10.25 |
[React] i18n 다국어 지원하기 (0) | 2021.09.08 |
[React] 이미지 파일 업로드 express 서버 송신 (0) | 2021.08.02 |