Language/JQuery

[Javascript] 특정 날짜간의 차이 구하기 - 날짜 계산하기

과일가게 개발자 2015. 7. 27. 14:06
반응형

자바 스크립트로 특정 날짜간의 차이 일수를 구하는 것은 크게 어렵지 않다.


MySQL DB에서는 DATEDIFF 함수를 이용하면 쉽게 구해지지만 자바스크립트에는 그런 기능이 없으므로 날짜간의 뺄셈을 이용하여 구하는 방법밖에는 없다.

간단하게 정리하면 비교하고자 하는 날짜를 밀리세컨드(millisecond) 단위로 변한한 뒤 두 날짜를 빼어 남은 값으로 계산하는 것이다.

아래 코드는 8월 27일부터 9월 1일까지의 전체 일수를 계산하는 예제이다.


<script type="text/javascript" language="javascript">

	var stDate = new Date(2015, 7, 27) ;
	var endDate = new Date(2015, 8, 1) ;

	var btMs = endDate.getTime() - stDate.getTime() ;
	var btDay = btMs / (1000*60*60*24) ;


	document.writeln(btDay);

</script>


위의 샘플코드를 실행하면 두 날짜간의 차이는 "5"를 반환한다. 해당 일수는 두 날짜를 포함하고 있지 않음에 유의하자.
그리고 위의 설명과는 다르게 8월 27일을 "2015, 7, 27", 9월 1일을 "2015, 8, 1" 로 지정하였다.

이는 자바스크립트에서 달을 사용하는 구간이 0 ~ 11 까지 이기 때문이다. 즉 우리가 알고 있는 달에서 1 을 빼주면 된다.
즉, 0은 1월, 1은 2월, 2는 3월을 뜻한다고 보면 된다. (기억하자 !!)