개발 공부/자바스크립트(JavaScript)

[js] slice(), charAt() 사용해서 Date()로 원하는 날짜 형식으로 출력하기

가이윤 2022. 6. 20. 13:25

Date() 객체로 날짜를 출력해보면 월, 분, 초 부분에서 1자리수가 출력될 때 1자리만 출력된다. 예를 들어 6월이면 06이 아니라 6만 출력된다. 2022-6-20 이런식으로 말이다. 나는 2022-06-20 이런 식으로 출력하고 싶다.

let now = new Date();
	    return now.getFullYear() + "-" + ('0'+(now.getMonth()+1)).slice(-2) + "-" + now.getDate() + " (" + '일월화수목금토'.charAt(now.getUTCDay())+') ' 
	    + now.getHours() + ":" + ('0'+now.getMinutes()).slice(-2) + ":" + ('0'+now.getSeconds()).slice(-2);

now.getMonth() 만으로 하면 예를 들어 6월이면 06이 아닌 6이 되기 때문에 앞에 문자 '0' 을 붙이고 slice(-2)로 문자열 뒤에서 2개의 문자만 추출한다. 이렇게 하면 1~9월까지는 01~09로 되고 10~12월은 010~012 인 상태에서 slice로 뒤에서 2개 문자만 추출되기 때문에 원하는 결과를 얻을 수 있다.

 

요일 같은 경우는 charAt을 사용해서 코드를 구성하면 1줄로 간단하게 구현할 수 있다. chatAt의 매개변수로 index 값을 넣으면 되는데, getUTCDay()가 요일을 숫자로 일요일부터 0으로 시작해서 토요일인 6까지 표시할 수 있다.