[Javascript] 기준 날짜를 내가 설정한 시간의 기준 날짜로 구하기

[Javascript] 기준 날짜를 내가 설정한 시간의 기준 날짜로 구하기
Photo by insung yoon / Unsplash

이슈

  • 사용자 기준 시간이 내가 설정한 시간이 아닌 브라우저 시간을 기준으로 나오는 현상이 있었습니다

예시

  • 한국(UTC+9) 2024년 3월 5일 아침 8시에 내가 설정한 시간대가 UTC-1이고 기준 날짜를 구하는 경우(UTC+9와 UTC-1은 10시간 차이가 납니다)
    • 한국 시간: 2024-03-05 08:00 -> 기준 날짜: 3월 5일
    • 설정 시간: 2024-03-04 22:00 -> 기준 날짜: 3월 4일
  • 하지만 자바스크립트에서 new Date().getDate() 를 구하면 한국 시간대로 기준 날짜가 나옵니다

해결

  1. 브라우저에서 보정되는 시간을 빼서 UTC를 구합니다
  2. 위에서 구한 UTC에 내가 설정한 시간을 더해 보정된 날짜를 구합니다
const myTimezone = -1; // 내가 설정한 시간
const localDate = new Date('2024-03-05 08:00'); // 로컬 한국 시간
const offsetHour = -new Date().getTimezoneOffset() / 60; // 브라우저에서 보정되는 시간
const utcDate = new Date(localDate.getTime() - offsetHour * 60 * 60 * 1000); // UTC, 2024-03-04 23:00
const myDate = new Date(utcDate.getTime() + myTimezone * 60 * 60 * 1000); // 내가 설정한 날짜 2024-03-04 22:00

Read more

쉬어가며2

쉬어가며2

개발 일만 하다 보면 눈앞의 코드에만 집중하게 된다. 오늘은 조금 다른 이야기를 해볼까 한다. 바로 주식에 대한 이야기다. 왜 주식을 해야 하는가? 주식을 시작하면 자연스럽게 질문이 많아진다. "왜 이 회사는 영업이익이 늘었는데 주가는 떨어졌을까?" "PER이 낮은데 왜 아무도 사지 않을까?" 재무제표를 읽고, 뉴스를 찾아보고, 시장의 흐름을 추적하다 보면 세상을 보는

By Jeonggil
쉬어가며

쉬어가며

개발 일만 하다 보면 때로는 잠시 멈춰서 주변을 둘러보는 것도 중요하다. 오늘은 오래전에 다녔던 병원에서의 일을 가볍게 풀어볼까 한다. 고객이 병원에 방문하고, 그것이 수익으로 이어지기까지. 그 안에는 생각보다 훨씬 많은 전략과 기술, 그리고 사람들의 노력이 숨어있다. 1. 들어가며 오래전 다녔던 한 병원에서의 일이다. 당시 나는 "의료 IT"라는 낯선 도메인에

By Jeonggil