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