JavaScript에서 날짜와 시간을 나타내는 Date 객체 사용 방법을 정리합니다.
Date 객체 생성하기
매개변수가 없으면, 생성 시점의 날짜로 Date 객체를 생성합니다.
// 현재 날짜
var nowDate = new Date();
console.log(nowDate);
// Mon Aug 16 2021 18:17:28 GMT+0900 (한국 표준시)
// 년, 월, 일을 전달한 값으로 셋팅
// 2021년 1월 1일의 Date객체 생성
var date1 = new Date(2021, 0, 1);
console.log(date1);
// Fri Jan 01 2021 00:00:00 GMT+0900 (한국 표준시)
// 년, 월, 일, 시, 분, 초, 밀리초을 전달한 값으로 셋팅
// 2021년 8월 16일 9시 30분 0초 0밀리초의 Date객체 생성
var date2 = new Date(2021, 8, 16, 9, 30, 0, 0)
console.log(date2);
// Thu Sep 16 2021 09:30:00 GMT+0900 (한국 표준시)
말도 안 되는 날짜로 Date 객체를 생성하더라도 에러 및 경고가 발생하지 않습니다.
주의하여 값을 전달합니다.
var dateValue = new Date(2021, 13414, 1);
console.log(dateValue);
// Tue Nov 01 3138 00:00:00 GMT+0900 (한국 표준시)
console.log(dateValue.getMonth());
// 10
Date 객체에서 날짜 정보 가져오기
Date 객체에서 날짜 정보를 가져오는 함수 사용방법입니다.
※ getMonth
, getDay
getMonth
함수는 0(1월) ~ 11(12월) 사이의 값을 반환합니다.getDay
함수는 0(일요일) ~ 6(토요일) 사이의 값을 반환합니다.
// 현재 날짜
var nowDate = new Date();
console.log(nowDate);
// Mon Aug 16 2021 18:28:43 GMT+0900 (한국 표준시)
// getFullYear : 년도
console.log(nowDate.getFullYear());
// 2021
// getMonth : 월
console.log(nowDate.getMonth());
// 7
// getDate : 일
console.log(nowDate.getDate());
// 16
// getDay : 요일
console.log(nowDate.getDay());
// 1
// getHours : 시간
console.log(nowDate.getHours());
// 18
// getMinutes : 분
console.log(nowDate.getMinutes());
// 28
// getSeconds : 초
console.log(nowDate.getSeconds());
// 43
// getMilliseconds : 밀리초
console.log(nowDate.getMilliseconds());
// 648
반응형
문자열 변환 함수 및 yyyymmddhhmmss 포메팅
자바스크립트의 Date 객체는 문자열 변환 함수는 지원하나 포메팅 지원을 하지 않으므로 별도로 개발해야 합니다.
문자열 변환 함수
함수 이름에 Locale이 포함된 함수들은 현재 지역을 기준으로 표시합니다.
var nowDate = new Date();
console.log(nowDate.toString());
// Mon Aug 16 2021 19:53:03 GMT+0900 (한국 표준시)
console.log(nowDate.toDateString());
// Mon Aug 16 2021
console.log(nowDate.toLocaleString());
// 2021. 8. 16. 오후 7:53:03
console.log(nowDate.toLocaleDateString());
// 2021. 8. 16.
console.log(nowDate.toLocaleTimeString());
// 오후 7:53:03
yyyymmddhhmmss 포메팅
년, 월, 일, 시, 분, 초를 추출하여 포메팅 처리해야 합니다.
Date.prototype.YYYYMMDDHHMMSS = function () {
var yyyy = this.getFullYear().toString();
var MM = pad(this.getMonth() + 1,2);
var dd = pad(this.getDate(), 2);
var hh = pad(this.getHours(), 2);
var mm = pad(this.getMinutes(), 2)
var ss = pad(this.getSeconds(), 2)
return yyyy + MM + dd+ hh + mm + ss;
};
function pad(number, length) {
var str = '' + number;
while (str.length < length) {
str = '0' + str;
}
return str;
}
var nowDate = new Date();
console.log(nowDate);
// Mon Aug 16 2021 19:56:50 GMT+0900 (한국 표준시)
console.log(nowDate.YYYYMMDDHHMMSS());
// 20210816195650
몇 년, 몇 월, 며칠 전후
오늘을 기준으로 몇 년, 몇 월, 며칠 전후를 구하는 경우입니다.
var nowDate = new Date();
var nowYear = nowDate.getFullYear();
var nowMonth = nowDate.getMonth();
var nowDay = nowDate.getDate();
var oneYearBeforeDate = new Date();
var oneYearAfterDate = new Date();
var oneMonthBeforeDate = new Date();
var oneMonthAfterDate = new Date();
var oneDayBeforeDate = new Date();
var oneDayAfterDate = new Date();
// 현재
console.log(nowDate.toLocaleString());
// 2021. 8. 16. 오후 8:20:45
// 하루 전
oneDayBeforeDate.setDate(nowDay - 1)
console.log(oneDayBeforeDate.toLocaleString());
// 2021. 8. 15. 오후 8:20:45
// 내일
oneDayAfterDate.setDate(nowDay + 1)
console.log(oneDayAfterDate.toLocaleString());
// 2021. 8. 17. 오후 8:20:45
// 1달 전
oneMonthBeforeDate.setMonth(nowMonth + 1)
console.log(oneMonthBeforeDate.toLocaleString());
// 2021. 9. 16. 오후 8:20:45
// 1달 후
oneMonthAfterDate.setMonth(nowMonth + 1)
console.log(oneMonthAfterDate.toLocaleString());
// 2021. 9. 16. 오후 8:20:45
// 1년 전
oneYearBeforeDate.setFullYear(nowYear - 1)
console.log(oneYearBeforeDate.toLocaleString());
// 2020. 8. 16. 오후 8:20:45
// 1년 후
oneYearAfterDate.setFullYear(nowYear + 1)
console.log(oneYearAfterDate.toLocaleString());
// 2022. 8. 16. 오후 8:20:45
반응형
'JavaScript > JavaScript 문법' 카테고리의 다른 글
[JavaScript]배열에서 특정 조건을 만족하는지 체크하는 some 함수 (0) | 2021.08.17 |
---|---|
[JavaScript]변수 선언과 호이스팅(Hoisting) (0) | 2021.08.17 |
[ECMAScript]Set 객체 (0) | 2021.08.13 |
[JavaScript]객체의 프로퍼티를 접근하는 방법 (0) | 2021.08.11 |
[JavaScript]콜백(Callback) 함수 (0) | 2021.08.10 |
댓글