티스토리 뷰

자바스크립트 현재 날짜와 시간 항상 한국 기준으로 구하기

참고: https://hianna.tistory.com/451

업무 중 현재 시간을 기준으로 이런저런 값을 계산할 일이 있었다. 근데 동료가 만약 우리나라가 아니라 다른 국가에서 접속하는 유저는 어떻게 처리하겠냐는 질문을 했다.

그래서 어디서 접속하든 언제나 한국 시간을 기준으로 잡아야 할 필요를 느꼈다.

필요한 것들

Date.prototype.getTime()

https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Date/getTime

1970 년 1 월 1 일 00:00:00 UTC와 주어진 날짜까지의 시간을 밀리세컨드로 반환한다.

Date.prototype.getTimezoneOffset()

https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Date/getTimezoneOffset

현재 사용자 PC 설정 시간대로부터 UTC 시간까지의 차이를 '분'단위로 반환한다.

예를들어, 한국 시간은 UTC보다 9시간 빠르기 때문에 -540을 반환한다.

구현

const now = new Date(); // 현재 시간
const utcNow = now.getTime() + (now.getTimezoneOffset() * 60 * 1000); // 현재 시간을 utc로 변환한 밀리세컨드값
const koreaTimeDiff = 9 * 60 * 60 * 1000; // 한국 시간은 UTC보다 9시간 빠름(9시간의 밀리세컨드 표현)
const koreaNow = new Date(utcNow + koreaTimeDiff); // utc로 변환된 값을 한국 시간으로 변환시키기 위해 9시간(밀리세컨드)를 더함

위 코드에서 koreaNow 는 사용자의 시간대가 어떻게 설정되어 있더라도 한국 시간을 보여주게 된다.

이를 응용하면 다른 나라의 시간을 보여줄 수 있다.

한계점은 사용자가 시간대, 즉 지역을 바꾸는 게 아니라 시스템 시간 자체를 바꾸면 대응할 수 없다.

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
TAG
more
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함