Javascript Date 와 Moment 활용

작업을 하다보면 늘 Date의 형식이 얽혀서, 헤깔리게 된다. Date 를 일관성있게 잘 정리해서 활용해야할 것 같다.

Date 에 관한 문서 => mdn date

  1. Date 을 타임으로 변환하여 사용.
    Jan 1st 1970 00:00:00 am 을 0점으로 하여, 1 초를 1000으로 계산한다.
    예를 들어, new Date().getTime() => 현재 시간을 타임으로 변환한다.
  2. Month
    var date = new Date();
    date.getMonth() 는 0을 시작으로 하는 월 수를 반환한다. (0-11)
    Month 를 Jan,Feb… 형식으로 반환하려면,
    var month = [‘Jan’,’Feb’….] 처럼 Array를 만들어서 date.getMonth()로 얻은 값에 대입해주어야한다.
  3. Day
    1st 2nd 3rd 처럼 서수로 표현하는 영문 날짜의 경우, 무척 일이 복잡해진다. Month 처럼 일일히 배열값을 만들어 대입하려면, 손가락이 아프다.

Moment 의 등장

이런 불편함을 해결하기 위해 moment 가 있다. javascript world 에서는 moment 가 보편적으로 쓰이는 유틸리티다. 거의 필수라고 해도 과언이 아니다.

$ npm i moment --save

일단 설치를 하고 여러가지 실험을 해보자.

moment 를 이용하여 현재 시간을 얻으려면

var date = moment();

이 기본 형태에서 여러가지 연산과 포맷을 더할 수 있다.

console.log(date.format());

format 은 패턴값을 arg로 가질 수 있다.

format 을 이용해 Month 얻기

date.format(‘MMM’)

JAN FEB … 등 세글자의 각 달의 이름을 반환한다.

format을 이용해 Month Year 얻기

date.format(‘MMM YYYY’)

같은 원리로 JAN 2017 와 같은 값을 반환한다.

momentjs.com을 방문하면 패턴에 관한 자세한 내용이 나온다.

Manipulate

moment의 또 다른 훌륭한 기능 중 하나가 날짜 연산기능이다. 위의 Manipulate 링크를 클릭하면 자세한 내용을 볼 수 있다.

data.add(1,’year’).subtract(9,’month’)

Date 와 Moment

new Date().getTime() 을 moment 에서 하려면

var timeStamp = moment().valueOf();

댓글 남기기