-
자바스크립트 현재 날짜와 시간 항상 한국 기준으로 구하기Programming/Javascript 2021. 9. 14. 21:00반응형
자바스크립트 현재 날짜와 시간 항상 한국 기준으로 구하기
참고: 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는 사용자의 시간대가 어떻게 설정되어 있더라도 한국 시간을 보여주게 된다.이를 응용하면 다른 나라의 시간을 보여줄 수 있다.
한계점은 사용자가 시간대, 즉 지역을 바꾸는 게 아니라 시스템 시간 자체를 바꾸면 대응할 수 없다.
반응형'Programming > Javascript' 카테고리의 다른 글
eslint 특정 라인 혹은 특정 파일에만 ignore하기 (0) 2021.09.27 자바스크립트 디바운스와 쓰로틀링 (0) 2021.09.23 자바스크립트 클립보드 복사 기능 만들기 (0) 2021.09.07 자바스크립트 Date 객체 깊은 복사하기 (0) 2021.07.07 iOS, Safari(사파리) 자바스크립트 new Date() 크로스브라우징 이슈 (2) 2021.06.27