velopert / velog-client

https://velog.io/
Other
675 stars 131 forks source link

로컬 timezone이 다른 경우 작성 시각 표시가 이상한 현상 #549

Closed rzglitch closed 3 months ago

rzglitch commented 3 months ago

IMG_460

저장된 timestamp는 UTC 기준이지만, 클라에서 변환할 때 UTC+9 기준으로 변환하는 듯 합니다.

timezone을 고려하여 계산해야 할 것 같습니다.

rzglitch commented 3 months ago

https://github.com/velog-io/velog/blob/295a49699351532267714c572e57071db27bd395/packages/velog-web/src/hooks/useTimeFormat.ts#L16

winverse commented 3 months ago

안녕하세요 제보해주셔서 감사합니다.

코드를 변경까지 논의가 조금 필요할거 같습니다. post.createdAt은 현재 UTC가 아닌 KST 기준으로 작성되어 있습니다.

클라에서 변환할때 이용되는 const targetDate = utcToZonedTime(new Date(date), 'Asia/Seoul') 이 코드는 사실 const targetDate = new Date(date) 이것과 같습니다.

다만 시스템 환경에 따라서 변경되는 new Date() 에 의해서 위 와 같은 현상이 발견되는 것으로 보이는데 어떻게 생각하시나요?

rzglitch commented 3 months ago

안녕하세요 제보해주셔서 감사합니다.

코드를 변경까지 논의가 조금 필요할거 같습니다. post.createdAt은 현재 UTC가 아닌 KST 기준으로 작성되어 있습니다.

클라에서 변환할때 이용되는 const targetDate = utcToZonedTime(new Date(date), 'Asia/Seoul') 이 코드는 사실 const targetDate = new Date(date) 이것과 같습니다.

다만 시스템 환경에 따라서 변경되는 new Date() 에 의해서 위 와 같은 현상이 발견되는 것으로 보이는데 어떻게 생각하시나요?

여러 번 테스트 해봤을 때 date-fns-tz의 utcToZonedTime에 의해

new Date()에서 반환된 date를 시간대의 변경 없이 시각만 KST 기준으로 맞추기 때문인 것 같습니다.

IMG_465

utcToZonedTime 없이 new Date() 로만 사용했을 때는 정상적으로 변환됩니다.

winverse commented 3 months ago

테스트 까지 해주시고 너무너무 감사드립니다 :)

해당 이슈는 fix 되어 배포 될 예정입니다 pull request

Velog를 이용 해주셔서 감사합니다!