[앱 완성도 높이기2 - 날짜보기] 타임존 관련 설정 문제
23년 05월 9일 22시 32분에 게시글을 작성했지만,
아래 이미지를 보면 알 수 있듯이,
API로 가져온 createdAt은 UTC 기준 날짜로 DB에 저장되어 있습니다.

강의 영상대로 dateView 메소드를 구현한 후
게시글 작성날짜를 보면 다음과 같습니다.


위 결과를 보면 알 수 있듯이 상대시간 계산이 제대로 이뤄지지 않고 있음을 확인할 수 있습니다.
검색을 해보니 day.js에서 utc 플러그인을 사용할 때 timezone 플러그인을 함께 사용해야 하는 것 같습니다. (참고: Dayjs 로 타임존을 다룰 때 주의해야 할 사항 2가지 (velog.io))
위 내용을 참고하여 dateView 메소드를 다음과 같이 수정했습니다.
import dayjs from "dayjs";
import relativeTime from "dayjs/plugin/relativeTime";
import utc from "dayjs/plugin/utc";
import timezone from "dayjs/plugin/timezone";
import ko from "dayjs/locale/ko";
function dateView(date) {
dayjs.extend(utc);
dayjs.extend(timezone);
dayjs.locale(ko);
dayjs.extend(relativeTime);
return dayjs().to(dayjs(date).tz().format("YYYY-MM-DD HH:mm:ss"));
}
export default dateView;
그리고 결과를 확인해보면,
한국 시간을 기준으로 상대시간이 올바르게 계산되는 것을 확인할 수 있었습니다.

Answer 1
1
이문제 같은 경우에는 서버에서 시간데가 utc 타입으로 저장되면서 나타나는 문제였던것 같습니다
원래 책에서 사용한 서버에는 이부분을 해결한 코드를 서버에 넣었었는데 이번에 fastify로 서버를 재구성 하면서 이부분이 누락된 것 같습니다.
현재 이부분 수정해서 백엔드 서버를 git 올려두었습니다.
그래서 백엔드 서버를 다시 다운받으시면 클라이언트에서 타임존 설정을 하지 않아도 시간대가 정상적으로 나올 것입니다.
이부분 참고 부탁드립니다.
스프링부트 서버 에러나요
0
17
1
DDD 는 마이바티스와 잘 맞지 않는건가요?
0
46
1
스프링부트 버전 문의드립니다.
0
38
1
Dto와 Entity 사용 관련 질문
0
31
2
강의 자료 코드
0
39
2
application.properties 작성 관련 질문
0
45
2
cascade 질문
0
39
1
관리자 페이지 상품 삭제 API
1
32
1
@types/bcrypt 설치과정이 누락된것같습니다.
0
48
1
process.env port key 에러
0
46
1
추상화
0
50
1
이미지 처리 라우트 관련 문의
0
67
2
지금 이게 맞는건지 문의드립니다.
0
44
1
프론트 api.js의 요청 headers 옵션의 cors 관련 설정 질문
0
61
2
[npm start 오류나는 분들을 위하여]노드 최신버전 사용하시면 오류가 발생합니다.
0
397
1
첫 메인 화면 $isLogin 인증 부분 궁금한점이 있습니다.
0
550
2
[앱 완성도 높이기3 - URL을 통한 보기모드 변경] 로그인 성공 후 라우팅 문제
0
311
1
[보기모드 변경 구현] 코멘트 리스트 조회 후 문제
0
448
2
[보기모드 변경 구현] 좋아요 보기 구현에서 문제 발견
0
423
1
[인증 구현 - 컴포넌트] error 처리 관련 질문
0
392
1
[인증 구현 - store] setAuth 메소드 구현
0
355
1
[스토어 배치] 강의 내용 중 수정이 필요한 부분
0
344
1
[라우터 설정] 강의 내용 중 수정이 필요한 부분
0
576
1
아래와 같은 에러가 발생합니다. ㅜㅜ
0
1245
2

