Tips
Javascript에서 서버 시간대에 상관없이 한국 시간으로 현재 날짜 호출하기
Hyunie
2023. 5. 16. 10:35
728x90
반응형
function getToday() {
const locale = new Date(); // 서버 시각
/*
1) .getTime()을 통해 현재 서버의 에폭시간(unix time)을 구함
2) .getTimezoneOffset()을 통해 서버와 UTC간의 시간차를 분단위로 구함 (Offset이라고 함)
3) Offset에 *60000을 해서 밀리초로 변환함
4) 두 초를 더해줌 = UTC의 에폭시간이됨
*/
const ust = locale.getTime() + (locale.getTimezoneOffset() * 60 * 1000);
/*
1) KST와 UST의 시차인 9시간을 밀리초로 변환해준 것을 UST와 더함 = KST의 에폭시간이 됨
2) KST의 에폭시간을 Date함수의 인자로 넣어주면 연,월,일 변수를 가진 객채를 반환함
*/
const kst = new Date(ust + (9 * 60 * 60 * 1000));
const year = kst.getFullYear().toString(); //yyyy형태의 숫자로 출력
/*
d형태의 숫자로 출력되므로 dd로 변환하려면 .padStart를 통해 한 자리시 앞에 0을 붙여서 2자리로 맞춤
1월이 0부터 표기되므로 1을 더해줌
*/
const month = (kst.getMonth() + 1).toString().padStart(2, '0');
const day = kst.getDate().toString().padStart(2, '0');
return year + month + day;
}
이 코드를 작성하면서 new라는 생성자에 대해서 배웠다. 간단하게 빈 객체 생성 -> 함수 호출 -> 리턴 값을 객체에 담는 것까지의 역할을 하는 것으로 확인했으며, 더 자세한 설명은 링크된 블로그를 보면 될 것 같다. 설명이 잘 되어있어 이해가 잘 갔다.
728x90
반응형