본문 바로가기

프로그래밍/JavaScript

[자바스크립트] 'Date' 개체, 날짜와 시간값을 얻어봅시다!

 

 

 

 

 

 

 

 

 Date 객체


 자주 쓰이진 않지만 가끔 현재시간이나, 시간 정보를 담아둬야 할 필요가 있을 때가 있는데요?

그럴때!! 활용할 수 있는 Date 객체가 있습니다.

 

 우선 Date 객체를 만드는 방법은 다음과 같습니다.

1. var 변수명 = new Date();

2. var 변수명 = new Date(밀리초);

3. var 변수명 = new Date("1 January 2012");

4. var 변수명 = new Date(2012, 0, 1, 12, 15, 10, 30);


 첫번째 방법은, 빈 생성자 Date()를 불러오는 방법인데요, 이때 변수에 저장되는 값은 현재값입니다.

 

 두번째 방법은, 밀리초를 생성자 인자로 넣는 방법으로, "1970년 1월 1일 00:00:00" 을 기준으로 밀리초 단위로 지나간 시간을 입력하는 방법이라고 해요. 실제로 이 방식으로 자바스크립트가 날짜를 저장하는 방식이라고 하니 이해정도로만 넘어갑시다.

 

 세번째 방법은, 날짜와 시간을 지정해주는 방법으로 인자로 넘긴 값들이 변수에 저장이 되죠.

 

 마지막 방법은, 쉼표를 기준으로 순서대로, 년, 월, 일, 시, 분, 초, 밀리초를 나타냅니다.

그래서 위가 의미하고 있는 날짜와 시간은 2012년 1월 1일 12시 15분 10초 30밀리초가 되겠군요.

여기서 주의깊게 봐야 할 것이 있는데요, 다음과 같습니다.

1. 월의 경우 1월이 "1"로 시작하는 것이 아니라 "0"부터 시작한다. 그래서 "0 ~ 11"라는 값을 가진다.

 

2. 날짜만 나타내고자 하는 경우, 뒷부분의 시간부분을 생략할 수 있다.

 

Date 객체의 날짜
 그렇다면 만든 Date 객체에서 정보를 가져와야겠죠?

다음과 같은 Accessor 메소드(접근 함수 혹은 접근자)들이 존재합니다.

-쉽게 말해서, get으로 시작하는 메소드를 의미합니다.

1. getDate()                  - 해당 날짜를 반환합니다.

2. getDay()                   - 해당요일을 정수로 반환합니다. 일요일은 0, 월요일은 1로 표시됩니다.

3. getMonth()               - 해당 월을 정수로 반환합니다. 여기서 주의할 것은 1월은 0으로 표시됩니다.

4. getFullYear()            - 해당 년도를 네 자리수로 반환합니다. 

 

반대로 Date 객체에 데이터를 입력할 수 있는 Mutator 메소드(변경 함수 혹은 변경자)들이 존재합니다.

-쉽게 말해서, set으로 시작하는 메소드를 의미합니다.

1. setDate()              - 인자로 날짜를 받고, 날짜를 설정합니다. 

2. setMonth()              - 인자로 월을 받고, 월을 설정합니다. 주의할 것은 1월은 0으로 기입해야 한다는 것입니다. 

3. setFullYear()          - 인자로 네자리수의 년도를 받고, 년도를 설정합니다.

 

 Date 객체의 시간
  시간에 대한 접근자는 다음과 같습니다.

1. getHours()             - 해당 시간을 정수로 반환합니다.

2. getMinutes()         - 해당 분을 정수로 반환합니다.

3. getSeconds()        - 해당 초을 정수로 반환합니다.

4. getMilliseconds() - 해당 밀리초를 정수로 반환합니다.

 

 시간에 대한 변경자는 다음과 같습니다.

1. setHours()          - 인자로 시간을 받고, 시간을 설정합니다.

2. setMinutes()       - 인자로 분을 받고, 분을 설정합니다.

3. setSeconds()       - 인자로 초를 받고, 초를 설정합니다. 

4. setMilliseconds() - 인자로 밀리초를 받고, 밀리초를 설정합니다.

 

 여기서 예는 들지 않구요, 이 Date 객체를 활용한 자바스크립트로 만든 달력을 다음에 게재하도록 할게요.

다음에 뵈요^^

 

궁금하시거나 도움줄 말이 있으시면 댓글 부탁드립니다 ^^