JavaScript에서 날짜와 시간을 얻거나 생성할 때 Date 객체를 사용합니다.
Date 객체 생성
오늘 날짜를 얻기 위해서는 생성자로 Date 객체를 호출합니다. 그러면 새로운 Date 객체가 반환됩니다.
var today = new Date();
생성된 Date 객체를 console.log로 출력하면 현재 날짜와 시간이 그리니치 표준시(GMT - Greenwich Mean Time)로 출력됩니다.
Date 객체를 console.log로 출력하면 Date 객체의 toString() 메서드가 자동으로 호출됩니다.
console.log(today);
--> Wed Mar 13 2022 15:23:37 GMT+0900 (한국 표준시)
console.log(today.toString());
--> Wed Mar 13 2022 15:23:37 GMT+0900 (한국 표준시)
한국 표준시의 영문 표기는 KST입니다.
Date 날짜 얻기
생성된 Date 객체의 메서드를 사용하여 년, 월, 일을 가져옵니다.
getFullYear() 메서드는 생성된 Date 객체에서 년도(4자리)를 가져옵니다.
getMonth() 메서드는 생성된 Date 객체에서 월(0 ~ 11)를 가져옵니다.
Zero Base으로 1월은 0입니다. 그래서 getMonth() + 1로 처리해야 합니다.
getDate() 메서드는 생성된 Date 객체에서 일(1 ~ 31)를 가져옵니다.
var todayYear = today.getFullYear();
var todayMonth = today.getMonth() + 1;
var todayDate = today.getDate();
생성된 Date 객체로 가져온 년, 월, 일로 문자열을 만들어 출력하겠습니다.
var todayString = todayYear + "년 " + todayMonth + "월 " + todayDate + "일";
console.log(todayString);
--> 2022년 3월 13일
ISO 표기법으로 Date 날짜를 문자열로 변환
생성된 Date 객체로 가져온 년, 월, 일을 ISO 8601 표기법(연월일)으로 변환하겠습니다.
ISO 8601 표기법(연월일)은 YYYY-MM-DD로 4자리 년도, 2자리 월, 2자리 일로 하이픈(-)을 구분자로 표기됩니다.
생성된 Date 객체에서 가져온 월이 10월 이전이거나 일이 10일 이전이면 2자리가 되지 않기 때문에 표기법(연월일)에 적합하지 않습니다.
var todayString = todayYear + "-" + todayMonth + "-" + todayDate;
console.log(todayString);
--> 2022-3-13
그래서 월과 일이 10보다 작을 경우 "0"를 추가해서 처리해야 합니다.
var todayString = todayYear + "-";
if (todayMonth < 10) {
todayString += "0";
}
todayString += todayMonth + "-";
if (todayDate < 10) {
todayString += "0";
}
todayString += todayDate;
console.log(todayString);
--> 2022-03-13
날짜 변환 함수 생성
Date 객체를 파라미터(Parameter) 전달받아 ISO 8601 표기법(연월일)으로 문자열을 생성하는 함수입니다.
function SimpleDateFormat(date) {
var todayString = date.getFullYear() + "-";
var todayMonth = date.getMonth() + 1;
if (todayMonth < 10) {
todayString += "0";
}
todayString += todayMonth + "-";
var todayDate = date.getDate();
if (todayDate < 10) {
todayString += "0";
}
todayString += todayDate;
return todayString;
}
var todayString = SimpleDateFormat(new Date());
console.log(todayString);
--> 2022-03-13
Date 객체와 구분자를 파라미터(Parameter) 전달받아 연월일 형식으로 문자열을 생성하는 함수입니다.
구분자가 전달되지 않으면 구분자를 하이픈(-)으로 처리합니다.
function SimpleDateFormat(date, separator) {
if (separator == undefined || separator == null || separator == "") {
separator = "-";
}
var todayString = date.getFullYear() + separator;
todayString += (((date.getMonth() + 1) < 10) ? "0" : "") + (date.getMonth() + 1) + separator;
todayString += ((date.getDate() < 10) ? "0" : "") + date.getDate();
return todayString;
}
var todayString = SimpleDateFormat(new Date(), "/");
console.log(todayString);
--> 2022/03/13
var todayString = SimpleDateFormat(new Date());
console.log(todayString);
--> 2022-03-13
var todayString = SimpleDateFormat(new Date("2022-03-01"));
console.log(todayString);
--> 2022-03-01