-
프론트엔드에서 서버로 시간을 전송할때 주의할점프론트엔드/프론트엔드 이슈 2024. 6. 12. 18:57728x90
* 프론트엔드에서 시간을 저장할때 주의할점
* 서버에서는 로컬시간으로 변경해도 적용이 안되고, 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