728x90
* 프론트엔드에서 시간을 저장할때 주의할점
* 서버에서는 로컬시간으로 변경해도 적용이 안되고, UTC시간으로만 저장된다.
* 프론트엔드에서는 서버의 코드를 브라우저에 가져와서 실행하기 때문에, 프론트엔드에서 브라우저가 로컬 PC의 로컬시간을 조회해서 변경할 수 있다.
* moment(date 문자열).format() 을 하면 로컬시간으로 변경할 수 있고, 이를 서버로 전송하면 몽고 DB 에는 UTC 시간으로 저장된다. 왜냐하면 DATE 객체이기 때문에 몽고 DB는 date 객체를 UTC로 저장한다.
* 그냥 date 문자열은 17:00 이지만, format()을 사용하면 17:00+09:00 과 같이 로컬시간을 인식할 수 있는 힌트가 붙는다. 이를 서버로 전송하면 DB에 저장할때 17:00에서 9시간을 빼서 08:00 이라는 UTC 시간으로 저장된다. 17:00+09:00 은 17시에서 9시간을 더한다는 의미가 아니라 현재 시간이 17시 로컬시간이고 9시간이 빠르다는 의미다. 그러므로 서버에 저장할때는 17시에서 9시간을 빼서 UTC시간인 8시로 저장된다.
* 만약 date 문자열을 그대로 서버로 전송하면 몽고 DB에는 문자열에 있는 시간 그대로 저장한다. 즉, UTC 시간으로 변경하지 않는다. 왜냐하면 문자열이기 때문이다.
728x90
'프론트엔드 > 프론트엔드 이슈' 카테고리의 다른 글
리액트에서 서버요청할때 베이스 URL 생략하는 방법 (0) | 2024.06.11 |
---|---|
컴포넌트 리렌더링과 state 상태 (.feat 클린업) (0) | 2024.05.29 |
API 요청 함수 (0) | 2024.05.20 |
마우스 호버시 서브메뉴 나오기 (0) | 2024.03.20 |
환경변수를 영구적으로 설정할때 setx path 를 cmd 창에서 입력했는데 안되는 경우 (1) | 2024.01.22 |