티스토리 뷰

Language/Node.js

javascript 전월 구하는 법

KyeongRok Kim 2015. 1. 6. 11:55

javascript 전월 구하는 법



javascript에서 아래와 같이 데이트(date) 오브젝트를 만들어서 '월'을 구하는 date.getMonth()메소드를 부르면 이번 '월 -1'이 된 숫자가 나온다. 예를들어 이번 월이 8월이면 '7'이라고 나온다.

var date = new Date();

var month = date.getMonth();


alert(month);


그래서 보통 getMonth()를 써서 나온 값에 1을 더해서 이번 달을 구한다.

var date = new Date();

var this_month = date.getMonth() + 1;


alert(this_month);



전월을 구할 때 아래와 같은 코드를 이용하면 12월까지는 오류가 나지 않는다.

하지만 해가 바뀌고 1월에 '월'이 '00'으로 오류가 난다.

var date = new Date();

var year = date.getFullYear();

var month = date.getMonth();


alert(year + "-" + month);





전월은 현재 시간을 기준으로 1일을 구한 후 day에서 1을 빼주면 전월 말일이 나온다.

var date = new Date();

var firstDayOfMonth = new Date( date.getFullYear(), date.getMonth() , 1 );

var lastMonth = new Date ( firstDayOfMonth.setDate( firstDayOfMonth.getDate() - 1 ) );


alert(lastMonth.getFullYear() + "-" + lastMonth.getMonth());


월은 0 - 11까지 이므로 1이 적게 나오는게 맞다.






날짜 메소드 디자인에 대해

1.표시형식은 어디서 정해 줄 것인지?

예를들어 '년월'을 표시 할 때 '2014.01', '2014-01', 'jan 2014' 이런 여러가지 표시 형식을 javascript에서 사용 하려면 애로사항이 있다. 오브젝트와 사용자가 보는 부분을 분리해서 화면에 출력할때와 파라메터를 넘길때 등 상태를 컨트롤 할 수 있어야 한다.


이런 상황에서는 위처럼 날짜 오브젝트를 바로 생성해서 표시 형식까지 바꿔서 출력하는 것 보다 날짜 오브젝트는 글로벌로 선언 하고 출력하는 메소드를 따로 만들어 주는게 좋을 것 같다는 생각을 해본다.




end.




공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함