Nem sempre é fácil lidar com tempo. Não só filosoficamente falando. Mesmo em desenvolvimento web, fazer cálculos de tempo é um desafio. A biblioteca Moment.s tem o intuito de facilitar o trabalho de manipulação de datas.
O que é a Moment.js?
Moment.js é uma biblioteca javascript disponível gratuitamente. Através dela é possível converter, manipular, validar e apresentar datas em javascript. Neste artigo vamos apresentar o Moment.js e mostrar alguns exemplos de utilização desta biblioteca.
Onde utilizar?
Moment foi desenvolvida para trabalhar tanto em browser quando em Node.js.
Node.js
Instale a moment usando o comando a seguir:
npm install moment
Depois, faça um require()
para poder utilizá-la na sua aplicação:
var moment = require('moment');
moment().format();
Browser
Para rodar a Moment no browser, faça o download do script e o inclua no html usando a tag <script>
.
A Moment.js cria um objeto moment global que pode ser usado para acessar todas as funcionalidades de manipulação de datas.
<script src="moment.js"></script>
<script>
moment().format();
</script>
Começando com Moment.js
Através da Moment.js também é possível alterar o formato das datas de acordo com o país.
Comando para dizer à Moment.js o idioma utilizado para exibir as datas:
moment.locale('pt-BR');
Formato de data
É comum recorrer ao objeto Date para manipulação de datas.
Por exemplo, para converter date strings em Date objects, era preciso dividir as datas e depois fazer concatenações. Através da Moment.js esse processo é simplificado.
Conversões em formato Date são extremamente simples em Moment.js:
moment().format('YYYY MM DD');
Exemplo de uso:
var date = '2016-09-01';
var format = 'LLLL';
var result = moment(date).format(format);
Thrusday, September 1, 2016 12:00 AM
Calculando datas
Usando a Moment.js também é possível adicionar e subtrair datas. Vamos ao exemplo:
- Adição de datas:
var date = new Date ('2016/08/31');
var dateString = moment(date).add(1, 'day').add(6,'months').format('1');
01/09/2016
- Subtração de datas:
moment().subtract(10, 'days').calendar();
21/08/2016
Tempo relativo
O Moment.js também possui cálculo de tempo relativo. Para utilizá-lo, basta aplicar a sintaxe:
moment("20111031", "YYYYMMDD").fromNow();
5 years ago
moment("20120620", "YYYYMMDD").fromNow();
4 yares ago