Date 객체
자바스크립트 내장 객체 중 날짜와 시간 정보를 관리하는 객체.
< 객체 생성 형식 >
var 객체참조변수 = new Date( 년, 월-1, 일, 시, 분, 초 );
-> Date( ) 괄호 안이 비어있으면 현재 시스템 날짜가 세팅된다.
-> Date 객체에서 월은 0~11까지의 숫자로 관리된다. 따라서 -1을 해야한다. ex) 5월 : 4
-> <주의> 꺼낼 때는 +1을 해서 꺼내야 한다. 출력 결과와 상관 없이 시스템 날짜를 고려해서 코딩 해야 한다.
<메소드 호출>
객체참조변수.메소드(~)
속성변수 호출은 없음.
Date 객체 메소드 |
|
getFullYear( ) |
연도 리턴 |
getMonth( ) |
월(0~11)리턴. |
getDate( ) |
일 리턴 |
getDay( ) |
요일( 0(일) ~ 6(토) )리턴. |
getHours( ) |
시간 리턴 |
getMinutes( ) |
분 리턴 |
getSeconds( ) |
초 리턴 |
getTime( ) |
[Date 객체의 날짜] - [1970년 1월 1일] 을 초 x 1000으로 리턴. |
setFullYear( 년도 ) |
연도 세팅 |
setMonth( 달 -1 ) |
월(0~11) 세팅 |
setDate( 일 ) |
일 세팅 |
setHours( 시간 ) |
시간 세팅 |
setMinutes( 분 ) |
분 세팅 |
setSeconds( 초 ) |
초 세팅 |
<예제1> 현재 시스템 날짜 출력하기
var today = new Date();
document.write( " 현재시스템날짜 => " + today );
현재시스템날짜 => Wed Aug 05 2020 13:15:39 GMT+0900 (대한민국 표준시)
Date( ) 괄호에 아무것도 넣지 않으면 현재 시스템 날짜가 출력된다.
따라서 아래처럼 get 함수로 이쁘게 한글을 붙여서 출력해줘야 한다.
<예제1-1> 현재 시스템 날짜 출력하기(get 함수 사용)
var today = new Date();
document.write( " 현재년도(getFullYear) =>" + today.getFullYear() + "년" + "<br>");
document.write( " 웹표준에서 삭제됨(getYear) =>" + today.getYear() + "년" + "<br>"); //현재 년도에서 1990을 뺀 숫자를 리턴한다.
document.write( " 현재월(getMonth)+1 => " + today.getMonth()+1 + "월" + "<br>");
document.write( " (현재월(getMonth)+1) => " + (today.getMonth()+1) + "월" + "<br>");
document.write( " 현재일(getDate) => " + today.getDate() + "일" + "<br>");
document.write( " 현재시(getHours) => " + today.getHours() + "시" + "<br>");
document.write( " 현재분(getMinutes) => " + today.getMinutes() + "분" + "<br>");
document.write( " 현재초(getSeconds) => " + today.getSeconds() + "초" + "<br>");
현재년도(getFullYear) =>2020년
웹표준에서 삭제됨(getYear) =>120년
현재월(getMonth)+1 => 71월
(현재월(getMonth)+1) => 8월
현재일(getDate) => 5일
현재시(getHours) => 14시
현재분(getMinutes) => 30분
현재초(getSeconds) => 18초
<예제2> 생일 날짜 출력하기
var birth = new Date(2020,11,25,8,20,30);
document.write( "내 생일시간 => " + birth.getFullYear() + "년"
+ (birth.getMonth()+1) + "월"
+ birth.getDate() + "일"
+ birth.getHours() + "시"
+ birth.getMinutes() + "분"
+ birth.getSeconds() + "초" + "<hr>");
내 생일시간 => 2020년12월25일8시20분30초
<예제3> 현재로부터 100일 후 출력하기
var baekil = [today.setDate( today.getDate() + 100 )];
document.write( " 100일 후 => " + baekil );
100일 후 => 1605245989947
Date 객체의 메모리 위치 주소값이 들어가게 되면 초로 출력된다. 년월일시분초로 나오게 하려면 <예제 2>처럼 해야 한다.
<예제4> 태어난 날부터 지금까지 얼마나 시간이 흘렀을까?
var today = new Date();
var birth = new Date(2020,11,25,8,20,30);
var interval = today.getTime() - birth.getTime()
var interval2 = (today.getTime() - birth.getTime())/(60*60*24) / 1000;
document.write( " 오늘까지 산 초수? => " + interval + "초" + "<br>");
document.write( " 오늘까지 산 일수? => " + interval2 + "일" + "<br>");
오늘까지 산 초수? => 775290344283초
오늘까지 산 일수? => 8973.267873645833일
getTime() : 1970.01.01부터 기준점까지 얼마나 지났는지?
-> 따라서 현재와 1970.01.01까지의 차이에서 생일과 1970.01.01까지의 차이를 빼면 현재와 생일의 차이가 나온다.
-> 일수를 구하기 위해 60초 * 60분 * 24시간으로 나누고, getTime은 *1000초 된 상태로 출력되므로 1000을 나눠준다.
<예제5> 태어난 날부터 지금까지 얼마나 시간이 흘렀을까?2025년 2월 마지막 날짜는?
var last_day = new Date(2025, 2, 0);
document.write( " 2025년 2월 마지막 날짜는? => "
+ last_day.getFullYear() + "년"
+ (last_day.getMonth()+1) + "월"
+ last_day.getDate() + "일" + "<hr>");
2025년 2월 마지막 날짜는? => 2025년2월28일
3월 1일의 전날이 2월의 마지막 날짜이다. 0으로 두면 그 전날을 의미한다.
<참고> 2일 전이면 -1이다.
<예제6-1> 현재 년월일요일시분초 출력하기(조건문 사용)
var today = new Date();
function getWeek1( weekNo ) {
//방법1 조건문 사용
if(WeekNo == 0){week = "일";}
else if(WeekNo == 1){week = "월";}
else if(WeekNo == 2){week = "화";}
else if(WeekNo == 3){week = "수";}
else if(WeekNo == 4){week = "목";}
else if(WeekNo == 5){week = "금";}
else if(WeekNo == 6){week = "토";}
return week;
}
document.write( "현재시간 => "
+ today.getFullYear() + "년"
+ (today.getMonth()+1) + "월"
+ today.getDate() + "일"
+ getWeek1 ( today.getDay() ) + "요일"
+ today.getHours() + "시"
+ today.getMinutes() + "분"
+ today.getSeconds() + "초" + "<br>");
<예제6-2> 현재 년월일요일시분초 출력하기(2차원 배열 사용)
var today = new Date();
function getWeek1( weekNo ) {
//방법2 2차원 배열로 인덱스번호 사용해서 사용
var week = ["일", "월", "화", "수", "목", "금", "토" ];
return week[weekNo];
}
document.write( "현재시간 => "
+ today.getFullYear() + "년"
+ (today.getMonth()+1) + "월"
+ today.getDate() + "일"
+ getWeek1 ( today.getDay() ) + "요일"
+ today.getHours() + "시"
+ today.getMinutes() + "분"
+ today.getSeconds() + "초" + "<br>");
현재시간 => 2020년8월5일수요일14시46분14초
요일을 출력하면 숫자가 출력된다. 따라서 번호가 우리가 알고 있는 월~일의 형식을 띌 수 있도록 function을 사용한다.
<예제6-3> 현재 년월일요일시분초 출력하기(객체 메모리 위치 주소값 사용)
//방법3 Date 객체의 메모리 위치 주소값을 사용하는 경우
function getWeek2( dateObj ) {
var weekNo = dateObj.getDay();
var week = ["일", "월", "화", "수", "목", "금", "토" ];
return week[weekNo];
}
document.write( "현재시간2 => "
+ day.getFullYear() + "년"
+ (day.getMonth()+1) + "월"
+ day.getDate() + "일"
+ getWeek2 ( day ) + "요일"
+ day.getHours() + "시"
+ day.getMinutes() + "분"
+ day.getSeconds() + "초" + "<hr>");
현재시간2 => 2020년8월5일수요일14시46분14초
<예제7-1> 현재 날짜 시간을 "?년 ?월 ?일 (?) 오전/오후 ?시 ?분 ?초" 형식으로 출력하면?
var today = new Date();
var nowHour = today.getHours(); //오전오후 변수 선언
function Hour( nowHour ) {
if ( nowHour < 12 && nowHour >= 0 ) {jeonhoo = '오전 ';}
else {jeonhoo = '오후 ';} //12시 이전일 때 오전, 나머지 오후
return jeonhoo;
}
function getWeek3( weekNo ) {
var week = ["일", "월", "화", "수", "목", "금", "토" ];
return week[weekNo];
}
document.write( "현재시간3 => "
+ today.getFullYear() + "년 "
+ (today.getMonth()+1) + "월 "
+ today.getDate() + "일 ("
+ getWeek3 ( today.getDay() ) + ") "
+ Hour( today.getHours() )
+ today.getHours() + "시 "
+ today.getMinutes() + "분 "
+ today.getSeconds() + "초 " + "<hr>");
현재시간3 => 2020년 8월 5일 (수) 오후 15시 37분 32초
<예제7-2> 현재 날짜 시간을 "?년 ?월 ?일 (?) 오전/오후 ?시 ?분 ?초" 형식으로 출력하면?(변수 개별 선언)
//변수 선언
var today = new Date();
function getWeek1( weekNo ) {
var week = ["일", "월", "화", "수", "목", "금", "토" ];
return week[weekNo];
}
var year = today.getFullYear();
var month = today.getMonth()+1;
var date = today.getDate();
var week = getWeek1(today.getDay());
var ampm = "오전";
var hour = today.getHours();
var miniute =today.getMinutes();
var second = today.getSeconds();
//---------------------------------
//조건문으로 오전오후 설정
if (hour>12)
{hour = hour-12;
ampm = "오후"
}
//---------------------------------
//01, 02.. 형식으로 나올 수 있도록 설정
if (month<10){ month = "0" + month;}
if (date<10){ date = "0" + date;}
if (week<10){ week = "0" + week;}
if (hour<10){ hour = "0" + hour;}
if (miniute<10){ miniute = "0" + miniute;}
if (second<10){ second = "0" + second;}
//---------------------------
//결과 출력
document.write( "현재시간4 => "
+ year + "년 "
+ month + "월 "
+ date + "일 ("
+ week + ") "
+ ampm
+ hour + "시 "
+ miniute + "분 "
+ second + "초 " + "<hr>");
변수 선언을 하게 되면 더 쉽게 할 수 있다.
'[ javascript ]' 카테고리의 다른 글
[String 객체] 문자열 복사 후 바꿔서 출력 : substr(), substring(), split() (0) | 2020.08.10 |
---|---|
[Math 객체] 수학적 계산을 돕는 Math객체 : max(), min(), ceil(), floor(), round(), abs(), pow(), sqrt(), random(), log(), sin(), cos(), tan() (2) | 2020.08.09 |
[Array 객체] 배열 합치기 : join() (2) | 2020.08.07 |
[RegExp 객체] 문자열 패턴 관리하는 정규표현식 : 패턴식, test(), 아이디, 비밀번호 패턴 설정, 핸드폰 번호 패턴 설정 (4) | 2020.08.07 |
[연산자] 삼항연산자(조건연산자) (0) | 2020.08.06 |
댓글