JavaScript에서 날짜와 시간을 나타내는 Date 객체 사용 방법을 정리합니다.
목차
- Date 객체 생성하기
- Date 객체에서 날짜 정보 가져오기
- 문자열 변환 함수 및 yyyymmddhhmmss 포메팅
- 몇 년, 몇 월, 며칠 전후
Date 객체 생성하기
매개변수가 없으면, 생성 시점의 날짜로 Date 객체를 생성합니다.
말도 안 되는 날짜로 Date 객체를 생성하더라도 에러 및 경고가 발생하지 않습니다.
주의하여 값을 전달합니다.
var dateValue = new Date(2021, 13414, 1); console.log(dateValue); // Tue Nov 01 3138 00:00:00 GMT+0900 (한국 표준시) console.log(dateValue.getMonth()); // 10Date 객체에서 날짜 정보 가져오기
Date 객체에서 날짜 정보를 가져오는 함수 사용방법입니다.
※ getMonth, getDay
getMonth 함수는 0(1월) ~ 11(12월) 사이의 값을 반환합니다.
getDay 함수는 0(일요일) ~
6(토요일) 사이의 값을 반환합니다.
문자열 변환 함수 및 yyyymmddhhmmss 포메팅
자바스크립트의 Date 객체는 문자열 변환 함수는 지원하나 포메팅 지원을 하지 않으므로 별도로 개발해야 합니다.
문자열 변환 함수
함수 이름에 Locale이 포함된 함수들은 현재 지역을 기준으로 표시합니다.
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