Un tutorial de Moment.js

Moment.js es una gran ayuda para administrar fechas en JavaScript

Moment.jses una increíble biblioteca de JavaScript que te ayuda a administrar las fechas, tanto en el navegador como en Node.js.

Este artículo tiene como objetivo explicar los conceptos básicos y los usos más comunes de esta biblioteca.

Instalación

Puede incluirlo directamente en su página utilizando una etiqueta de secuencia de comandos, de unpkg.com:

<script src="https://unpkg.com/moment" />

o usandonpm:

npm install moment

Si instala usando npm, necesita importar el paquete (usandoMódulos ES):

import moment from 'moment'

o requerirlo (usandoCommonJS):

const moment = require('moment')

Obtener la fecha y hora actual

const date = moment()

Analizar una cita

Un objeto de momento se puede inicializar con una fecha pasándole una cadena:

const date = moment(string)

acepta cualquier cadena, analizada de acuerdo con (en orden):

La ISO 8601 es definitivamente la más conveniente. Aquí hay una referencia de formato:

Formato Sentido Ejemplo
YYYY Año de 4 dígitos 2018
YY Año de 2 dígitos 18
METRO Número de mes de 2 dígitos, omite el 0 inicial 7
MM Número de mes de 2 dígitos 07
mmm Nombre del mes de 3 letras jul
MMMM Nombre del mes completo julio
dddd Nombre del día completo domingo
gggg 4 dígitos Semana año 2018
gg 2 dígitos Semana año 18
w Semana del año sin cero a la izquierda 18
ww Semana del año con cero a la izquierda 18
mi Day of the week, starts at 0 4
D Número de día de 2 dígitos, omite el 0 inicial 9
DD Número de día de 2 dígitos 09
Hacer Número de día con ordinal Noveno
T Indica el inicio de la parte del tiempo.
S.S Horas de 2 dígitos (24 horas) de 0 a 23 22
H Horas de 2 dígitos (24 horas) de 0 a 23 sin 0 a la izquierda 22
kk Horas de 2 dígitos (24 horas) de 1 a 24 23
k Horas de 2 dígitos (tiempo de 24 horas) de 1 a 24 sin 0 a la izquierda 23
Automóvil club británico amopm pm
S.S Horas de 2 dígitos (tiempo de 12 horas) 11
mm Minutos de 2 dígitos 22
ss Segundos de 2 dígitos 40
s Segundos de 2 dígitos sin cero a la izquierda 40
S Milisegundos de 1 dígito 1
SS Milisegundos de 2 dígitos 12
SSS Milisegundos de 3 dígitos 123
Z La zona horaria +02: 00
X Marca de tiempo de UNIX en milisegundos 1410432140575

Pon una fecha

Dar formato a una fecha

Cuando desee generar el contenido de un objeto de fecha de JavaScript simple, tiene pequeñas opciones para determinar el formato. Todo lo que puede hacer es usar los métodos integrados y componer la fecha como desee usándolos.

Moment ofrece una forma práctica de formatear la fecha de acuerdo con sus necesidades, utilizando elformat()método:

date.format(string)

El formato de cadena acepta los mismos formatos que describí en la sección "Analizar una fecha" anterior.

Ejemplo:

moment().format("YYYY Do MM")

Moment proporciona algunas constantes que puede usar en lugar de escribir su propio formato:

Constante Formato Ejemplo
moment.HTML5_FMT.DATETIME_LOCAL AAAA-MM-DDTHH: mm 2017-12-14T16:34
moment.HTML5_FMT.DATETIME_LOCAL_SECONDS AAAA-MM-DDTHH: mm: ss 2017-12-14T16:34:10
moment.HTML5_FMT.DATETIME_LOCAL_MS AAAA-MM-DDTHH: mm: ss.SSS 2017-12-14T16:34:10.234
moment.HTML5_FMT.DATE AAAA-MM-DD 2017-12-14
moment.HTML5_FMT.TIME HH: mm 16:34
moment.HTML5_FMT.TIME_SECONDS HH: mm: ss 16:34:10
moment.HTML5_FMT.TIME_MS HH: mm: ss.SSS 16: 34: 10.234
moment.HTML5_FMT.WEEK AAAA- [W] WW 2017-W50
moment.HTML5_FMT.MONTH AAAA-MM 2017-12

Validando una fecha

Se puede verificar la validez de cualquier fecha usando elisValid()método:

moment('2018-13-23').isValid() //false
moment('2018-11-23').isValid() //true

Tiempo atrás, tiempo hasta la fecha

UsarfromNow(). Las cadenas están localizadas:

moment('2016-11-23').fromNow() //2 years ago
moment('2018-05-23').fromNow() //a month ago
moment('2018-11-23').fromNow() //in 5 months

si pasastrueto fromNow (), solo muestra la diferencia, sin referencia al futuro / pasado.

moment('2016-11-23').fromNow(true) //2 years
moment('2018-05-23').fromNow(true) //a month
moment('2018-11-23').fromNow(true) //5 months

Manipular una cita

Puede sumar o restar cualquier cantidad de tiempo a una fecha:

moment('2016-11-23').add(1, 'years')
moment('2016-11-23').subtract(1, 'years')

Puedes usar esos valores:

  • years
  • quarters
  • months
  • weeks
  • days
  • hours
  • minutes
  • seconds
  • milliseconds

Más tutoriales de js: