본문 바로가기
프로그래밍/자바스크립트

[javascript] 자바스크립트 날짜 차이계산

by imfireguy 2021. 3. 24.
반응형

@ferenc-almasi unsplash

자바스크립트 날짜 차이 계산

 자바스크립트로 현재 날짜부터 특정일 수의 차이를 구해야 될 때가 있습니다. 따로 자바스크립트로 구현을 해보도록 하겠습니다. 

현재는 2021년 3월 24일입니다. 그리고 2021년 03 월 21일과의 일수 차이는3일입니다.

차이가 그대로 나는지 한번 코드를 작성해 보도록 하겠습니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
// 현재: 2021-03-24
var now = new Date();
 
var year = now.getFullYear();   // 연도
var month = now.getMonth()+1;   // 월    
var day = now.getDate();        // 일
 
var stDate = new Date(20210321);
var endDate = new Date(year, month, day);
 
var btMs = endDate.getTime() - stDate.getTime() ;
var btDay = btMs / (1000*60*60*24) ;
 
console.log("일수 차이는?? " + btDay);
cs

 

▼ 크롬 브라우저에서 F11 누르면 나오는 개발자 도구의 Console 창에서도 해당 결과를 확인해 볼 수 있습니다.

 

파라미터로 받은 날짜의 일 수차이 구하기

앞에서는 date 선언 시 var stDate = new Date(2021, 03, 21); 이렇게 했지만 2021, 03, 21 이부분을 만약 파라미터로 받는다면 어떻게 할건지 조금 나아가서 알아보도록 하겠습니다.

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
// 현재: 2021-03-24
var now = new Date();
 
// 파라미터로 받을 수 있음. 편의상 현재날짜로 대체
var date = "2021-03-21";      
var date_arr = date.split("-");    
 
var year = now.getFullYear();   // 연도
var month = now.getMonth()+1;   // 월    
var day = now.getDate();        // 일
 
var stDate = new Date(date_arr[0], date_arr[1], date_arr[2]);
var endDate = new Date(year, month, day);
 
var btMs = endDate.getTime() - stDate.getTime() ;
var btDay = btMs / (1000*60*60*24) ;
 
console.log("일수 차이는?? " + btDay);
cs

 

▼ 동일하게 크롬브라우저 개발자도구에서 결과를 확인 할 수 있습니다.

 

잠깐 설명을 하자면 2021-03-21을 선언 후 split을 하는데 이건 하이픈 기준으로 데이터를 나눈다는 뜻입니다.

그래서 2021, 03, 21 이렇게 배열 0번,1번 ,2번 세개로 나뉘어 지게 됩니다.

보통 그리고 이렇게 배열로 나누고 난 이후에 길이(length) 체크 후 for문을 돌려서 데이터를 바인딩 하는데 지금 같은경우에는 0, 1, 2 이렇게 세가지이고 바로 알 수 있기 때문에 그냥 배열(date_arr[0], date_arr[1], date_arr[2])로 바로 값을 줘서 처리했습니다.

프로그램같은경우에는 여러가지 방법이 있을 수 있습니다. 프로그래밍을 하실 때 다른방법은 없는지 생각을 해보시는 연습을 해보시면 좋습니다.

반응형

댓글