이번달의 첫날과 마지막날 알아내기  

 

5월의 시작하는 날과 마지막날을 알아내는 것을 가정해본다.

var startDayOfMay = new Date(2012, 4, 1);

var endDayOfMay = new Date(2012, 5, 0);

console.log("startDayOfMonth : " + startDayOfMay + ", endDayOfMonth : " + endDayOfMay);


>> 결과

 startDayOfMonth : Tue May 01 2012 00:00:00 GMT+0900 (KST), endDayOfMonth : Thu May 31 2012 00:00:00 GMT+0900 (KST)



   생성한 Date 객체에서 월(Month)의 값을 꺼내면 어떤 값이 나올까?  
 

var today = new Date();

console.log("Date : " today + ", Month : " +today.getMonth());

>> 결과

Date : Tue May 15 2012 16:26:13 GMT+0900 (KST), Month : 4


출력된 Date 문자열은 분명 5월(May)를 나타내고 있는데, Date 객체에서 추출한 Month는 4가 나타났다.

이렇게 나타나는 이유는 자바스크립트의 Date 객체에서 월Month 가 0부터 시작하기 때문이다.

0 = 1월, 1 = 2월, 2 = 3월, ..., 10 = 11월, 11 = 12월.


확인하는 방법은 간단하다.

var modifyDate = new Date(2012, 0, 1); 
console.log("Date : " modifyDate + ", Month : " + modifyDate.getMonth());
>> 결과 
Date : Sun Jan 01 2012 00:00:00 GMT+0900 (KST), Month : 0

var modifyDate = new Date(2012, 11, 1); 
console.log("Date : " modifyDate + ", Month : " + modifyDate.getMonth());
>> ru
Date : Sat Dec 01 2012 00:00:00 GMT+0900 (KST), Month : 11


 

 왜 0부터 시작할까?  

 

참고 : http://www.evotech.net/blog/2007/07/javascript-date-object/

위의 사이트로 가보면, 마지막 Date.prototype... 코드 부분에 월Month을 배열Array로 처리하는 것을 확인할 수 있는데, 컴퓨터에서 사용하는 배열의 순서Index는 0부터 시작한다는 것을 생각해보면 어느정도 유추해볼 수 있을 듯 하다. getMonth()를 하면 객체가 속한 달의 순서Index값을 내놓는 것이라 생각해볼 수 있을 것 같다.


+ Recent posts