mysql - node.js 와 vue.js 데이터 주고 받을 때 날짜 타임존 이슈

mysql 로 데이터 등록 할 때 날짜 컬럼의 data type 를 datetime 으로 셋팅하고 데이터를 넣었다가
어느 날 보니 vue js 로 제작된 페이지에 날짜가 8시간을 넘긴 후의 시간으로 나와서 어디서부터 문제인가 찾기 시작하다 해결해서 적어 놓음.

node.js 서버에서 데이터를 넣을 때 아래처럼 날짜와 함께 넣었다.

INSERT INTO A테이블 (mid, comment, regdate) VALUES ("test-id", "abcabc", NOW())

만약 아래처럼 데이터 불러올 때 바로 불러오고,

SELECT mid, comment, regdate FROM A테이블 where order by regdate DESC

이걸 vue js 에서 노출하면 타임존 계산이 되서 8시간 앞의 시간으로 노출된다.
vue.js 에서 momont 와 moment-timezone 을 vue.js에서 설치하여 사용하면 되지만 위에 node.js 에서 가져올때 쿼리문에 데이터 형식을 좀 바꾸면 된다.

SELECT mid, comment, DATE_FORMAT(regdate, '%Y.%m.%d') as regdate FROM A테이블 where order by regdate DESC

이렇게 date_format() 이용해서 노출 형식도 2019.06.25 처럼 노출할 수 있다.

Subscribe
Notify of
guest

이 사이트는 스팸을 줄이는 아키스밋을 사용합니다. 댓글이 어떻게 처리되는지 알아보십시오.

0 댓글
Inline Feedbacks
View all comments
TOP