Web/Node.js

Moment.js 시간표기와 시간 차이 구하기

_sparrow 2020. 7. 5. 09:00
반응형

 

import moment from 'moment';
require('moment-timezone');
// import timezone from 'moment-timezone';
moment.tz.setDefault("Asia/Seoul");

//시간 비교 표기하기위해서
moment.updateLocale('ko', {
    relativeTime : {
        future: "%s 후",
        past:   "%s 전",
        s  : "%d 초",
        ss : "%d 초",
        m:  "%d 분",
        mm: "%d 분",
        h:  "%d 시간",
        hh: "%d 시간",
        d:  "%d 일",
        dd: "%d 일",
        M:  "%d 달",
        MM: "%d 달",
        y:  "%d 년",
        yy: "%d 년"
    }
});

// result는 select query의 결과
console.log('1순위 시간',moment(result[0].time).subtract(9,'hours'));
// 시간대 Asia/Seoul로 되어있어서 한국어로 표기된다.
console.log('LLLL 변환',moment(result[0].time).subtract(9,'hours').format('LLLL'));
console.log('현재시간',moment().format());

// 현재와 고정시간과 비교
moment(result[0].time).subtract(9, 'hours').fromNow();
console.log('상대시간', moment('2020-06-19 19:57',"YYYY-MM-DD HH:mm").fromNow());

 

Mysql 시간 저장하는 칼럼으로 Datetime으로 구성했다.

저장할 때 한국시간으로 저장했고 위의 코드처럼 result [0]로 결괏값을 가져왔는데 서울시간으로 저장했으나 이상하게도 9시간 빠르게 표시됐다.

 

그래서 현재시간과 비교할때 현재 서울시간과 동일하게 하기 위해서 임의적으로 저장됐던 시간대에서 9시간을 뺐다.

 

내가 GMT와 UTC를 잘 이해하지못하고 사용해서 그런 것 같긴 한데 임의적으로 시간 값을 수정해서 비교하도록 했다.

 

 

1시간을 45분되면 인식되어서 상대 시간 인식하는 것을 따로 처리해줬다

moment.relativeTimeThreshold('m', 60);
moment.relativeTimeThreshold('h', 24);
moment.relativeTimeThreshold('M', 30);

참고

반응형

'Web > Node.js' 카테고리의 다른 글

nvm windows에 설치하기  (0) 2021.10.24
node, npm 버전 관리  (0) 2021.03.04
Node.js HTTPS 서버 작동하기  (0) 2020.07.04
Node.JS 카카오페이 API 사용하기  (2) 2020.06.18
노드몬(Nodemon) 강제종료하기  (0) 2020.05.20