JavaScript로 개발하다보면 Date 함수에서 사소한 불편함을 느끼는 경우가 있다.
바로 시간이다.
new Date를 사용해서 현재 시간을 가져와서 확인한다면 바로 알 수 있다.
// 현재 시간 : 2023-04-13 09:00:00
const curr = new Date();
console.log(curr);
// 2023-04-13 00:00:00
Date의 기준이 영국시간으로 9시간 전이기 때문이다.
크게 보면 문제가 없을 수 있다. 모든 시간을 Date를 기준으로 사용한다면?
하지만 어떤 경우에는 9시간 차이로 인해서 13일이라면 12일로 나오는 경우도 있다.
프론트엔드에서 이런 차이가 얼마나 크겠냐 싶지만 크리티컬한 문제를 발생시킬 수 있는 부분이기도 하다.
그럼 이것을 한국 시간으로 어떻게 바꿔야할까?
const offset = 1000 * 60 * 60 * 9
const koreaNow = new Date((new Date()).getTime() + offset)
console.log(Date.now.replace("T", " ").split('.')[0])
//2022-07-19 06:31:12 -> UTC
console.log(koreaNow.toISOString().replace("T", " ").split('.')[0])
//2022-07-19 15:31:12 -> Seoul/Asian
다음과 같이 9시간을 현재 시간에 더해준 새로운 Date를 사용하는 것이다.
크게 어려운 코드가 아니니 필요에 따라 사용해볼만 하다.
반응형
'JavaScript' 카테고리의 다른 글
[JavaScript] localeCompare (0) | 2023.04.22 |
---|---|
[JavaScript] 공백 표시가 안되는 경우 (0) | 2023.04.14 |
[JavaScript] ??와 || 의 차이 (0) | 2023.04.09 |
[JavaScript] then vs Async/Await (0) | 2023.01.27 |
[JavaScript] every, some (0) | 2023.01.12 |