현재 시간을 특정 포맷으로 출력하는 방법은 아래 코드와 같습니다.


Date.prototype.yyyymmdd = function() {
  const yyyy = this.getFullYear();
  const mm = this.getMonth() < 9 ? `0${this.getMonth() + 1}` : this.getMonth()+1;
  const dd = this.getDate() < 10 ? `0${this.getDate()}` : this.getDate();

  return '' + yyyy + mm + dd;
}

const date= new Date();
console.log(date);
/* Thu Dec 15 2022 15:21:08 GMT+0900 (한국 표준시) */

console.log(date.yyyymmdd());
/* 20221215 */


Date 객체 prototype으로 yyyymmdd 이름의 메소드를 정의합니다.

함수 내 this는 Date 객체를 가리킵니다. Date의 getFullYear을 통해 연도를 가져올 수 있습니다. 예를 들어, new Date()는 현재 기준의 날짜 정보가 들어 있는 Date 객체 인스턴스를 생성합니다. 여기서 getFullYear() 함수를 실행하면 4자리 연도 값을 반환합니다. 반환된 값은 변수 yyyy에 대입 합니다.

Date의 getMonth는 월 단위 값을 가져옵니다. getMonth 함수는 기본적으로 0부터 시작합니다. mm 두 자리를 맞추기 위해, 값이 한자리인 경우(1~9월) 문자열 'D'을 앞에 추가합니다. 반환된 값은 변수 mm에 대입합니다.

Date의 getDate는 일자 값을 가져옵니다. dd 두자리를 맞추기 위해, 값이 한자리인 경우 (1~9월) 문자열 '0'을 앞에 추가합니다. 반환된 값은 변수 dd에 대입합니다.

여기서 대입 선언된 yyyy, mm, dd를 순서대로 결합합니다. 빈 문자열 ''과 숫자값의 덧셈 연산은 숫자형 값을 문자형으로 변환합니다. 따라서 년월일 정보가 문자열로 반환됩니다.

변수 date는 Date.prototype 을 상속받은 Date 객체 인스턴스입니다. 따라서 prototype으로 미리 선언한 yyyymmdd 함수를 사용할 수 있습니다. date의 yyyymmdd 함수를 호출하여 콘솔로 출력합니다.

위 코드를 콘솔에서 확인하면 다음과 같습니다. 결과는 고정된 값이 아니므로 실제로 예제가 실행된 현재 시간으로 출력됩니다. 따라서 아래 결과는 데이터 포맷을 확인한 실제 시간 값입니다.




0 댓글