Manejar fechas y horas como un profesional con moment.js

¿No odias trabajar con funciones de fecha y hora en JavaScript? ¿Te has fijado alguna vez en la cantidad de código que se necesita para mostrar simplemente cuánto tiempo ha pasado desde un determinado evento? Por suerte para ti, hay una pequeña librería de JavaScript llamada moment.js que puedes incluir en la carpeta tu sitio web y utilizar de inmediato.

Cosas chulas que puedes hacer con la librería

La primera parada es crear un nuevo objeto moment. Esto se hace llamando a la función global moment(). Si la dejas vacía, se utilizará la hora actual. De lo contrario, puedes pasarle un timestamp, un array o un string con el formato en el que será parseada la fecha.

Crea un objeto moment

// Create a new moment object
var now = moment();

// Create a moment in the past, using a string date
var m = moment("April 1st, 2005", "MMM-DD-YYYY");

// Create a new moment using an array
var m = moment([2005, 3, 1]);

Ten en cuenta que al igual que con el objeto de JavaScript Date(), los meses empiezan desde cero, por lo que es 3 de abril.

Trabajando con horas

// What time is it?
console.log(moment().format('HH:mm:ss')); // 16:13:11

// What day of the week is it?
var day = moment().day(); // 5
console.log( moment.weekdays[day] ); // Friday

// What is the current month name?
console.log( moment.months[moment().month()] ); // August

// What time is it in London? (time zone: UTC)
console.log( moment.utc().format('HH:mm:ss') ); // 13:23:41

// What time is it in Japan? (time zone: UTC+9)
console.log( moment.utc().add('hours',9).format('HH:mm:ss') ); // 22:23:41

Como puedes ver, el método de formato es lo que necesitas para convertir un objeto moment en algo legible. Hay un montón de opciones de formato para elegir y son más fáciles de recordar que lo que se obtiene cuando utilizas la función date de PHP.

Trabajando con fechas

// How old are you?
var m = moment("Mar 26th, 1989", "MMM-DD-YYYY");

console.log('You are '+m.fromNow() + ' old'); // You are 23 years ago old

// Oops. We better leave the "ago" part out:
console.log('You are '+m.fromNow(true) + ' old'); // You are 23 years old

// When will the next world cup be?
console.log( moment('June 12th, 2014','MMM DD YYYY').fromNow() ); // in 2 years

// What will be the date 7 days from now?
console.log( moment().add('days',7).format('MMMM Do, YYYY') ); // September 7th, 2012

El método fromNow() es muy útil en la producción de diferencias de tiempo legibles. Esto automáticamente escale el periodo y lo devuelve de segundos a años.

Duración de tiempo

// Find the duration between two dates
var breakfast = moment('8:32','HH:mm');
var lunch = moment('12:52','HH:mm');
console.log( moment.duration(lunch - breakfast).humanize() + ' between meals' ) // 4 hours between meals

El método de duración coge un número de milisegundos y crea un nuevo objeto. Mediante el uso de su método humanize(), obtenemos la versión legible por humanos.

¡No hay tiempo que perder!

Espero que este artículo, te haya proporcionado una idea de lo que es posible hacer con la librería moment.js. Si deseas obtener más información, sigue el proyecto en GitHub y documentate a través de los ejemplos y textos de su página.

Y este ha sido el artículo en el que trataba explicaros cómo manejar fechas y horas como un profesional con moment.js, esperamos que te haya gustado y sepas aplicarlo en tus futuros proyectos. Ya sabes que si nos quieres proponer un tema que quieres ver reflejado como un tutorial o como una práctica, solo tienes que hacer uso del área de comentarios de un poco más abajo. Por el contrario, si quieres enviarnos tus propios tutoriales, puedes hacerlo a través de la intranet de usuarios que está habilitada para ello, a través del menú Enviar Tutorial. Ya sabes, ayúdanos a crecer con tus conocimientos. ¡Un saludo y feliz código!

 

COMPARTE ESTE ARTÍCULO

COMPARTIR EN FACEBOOK
COMPARTIR EN TWITTER
COMPARTIR EN LINKEDIN
COMPARTIR EN WHATSAPP