JavaScript/JavaScript 문법

[JavaScript]현재 날짜 구하기, yyyymmddhhmmss포메팅

DevStory 2021. 8. 16.

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
반응형

댓글