-
javascript 실시간 D-day 계산기 만들기 (setInterval, Date, padStart)IT/js 2022. 4. 21. 03:36
결과물

- 실시간 현재시각
- 크리스마스 까지 남은 시간 표기
HTML
<h2>Time Until Christmas Eve</h2> <h2 id="testClock"></h2>- HTML 내용은 정말 별게 없다.
- 실시간 현재 시간을 표기하는 것은 같은 원리이므로 생략
해당 결과물을 제작하기 위해 알아야 할 것 3가지
1. new Date() - 시간 생성
2. setInterval() - javascript 함수
3. padStart() - javascript 함수JavaScript
1. new Date()
const date = new Date(); console.log(date); // 현재 시간을 불러오는 방법2. setInterval()
setInterval(getTestClock, 1000); // 1초마다 getTestClock 함수를 실행시켜달라는 함수3. padStart()
const seconds = String(date.getSeconds()).padStart(2,"0"); // 1m 5s 가 아닌 01m 05s 로 표기 되도록하는 함수 // String 으로 문자열로 변경한다음 // padStart를 이용하여 앞쪽 총 2개의 자리가 비었으면 "0"을 입력하도록 함4. 전체코드
const testClock = document.querySelector("#testClock"); function getTestClock(){ const chrisDate = new Date(2022,11,25,00,00,00,0000); // 구하고자 하는 변수안에 Date 년, 월(0부터시작), 일, 시간, 분, 초, ms 를 입력 const todayDate = new Date(); // 현재 날짜를 todayDate 변수에 담기 const distance = chrisDate.getTime() - todayDate.getTime(); // 크리스마스 시간 - 현재 시간 getTime 메서드를 이용하여 밀리초의 값으로 가져온다. const day = Math.floor(distance/(1000*60*60*24)); // Math.floor 함수를 이용해서 근접한 정수값 가져오기 // ms 이기 떄문에 1000 곱해주기 // 100 * 60 => 60초(1분)*60 -> 60분 (1시간) * 24 = 24시간 (하루) const hours = String(Math.floor((distance % (1000*60*60*24)) / (1000*60*60))).padStart(2,"0"); const minutes = String(Math.floor((distance % (1000*60*60)) / (1000*60))).padStart(2,"0"); const seconds = String(Math.floor((distance % (1000*60)) / (1000))).padStart(2,"0"); // 나머지 연산자를 통해서 시 분 초 구해주기 // 시간, 분, 초 는 01, 02, 03으로 표기되기를 원하므로 String, padStart 추가로 입력 testClock.innerText = `${day}d ${hours}h ${minutes}m ${seconds}s` } getTestClock(); // 처음 0~1초 사이 빈공간을 메워주기 위한 호출 setInterval(getTestClock, 1000); // 1초마다 getTestClock 호출'IT > js' 카테고리의 다른 글
EcmaScript 2022(ES 2022) js 신기능 4가지 (0) 2022.07.11 JavaScript 버튼 클릭 시 이미지 추가, 랜덤 그라데이션 컬러 변경 (0) 2022.04.22 프로젝트 진행 에러, API를 불러오는데 발생한 에러 (0) 2022.01.15 2022_01_12 DOM_노드 탐색 (0) 2022.01.12 2022_01_02 기념일 계산기 (0) 2022.01.03