Sugerencia rápida:maneje la fecha y la hora como un jefe con moment.js

¿No odias trabajar con las funciones de fecha y hora de JavaScript? ¿Has visto cuánto código se necesita para simplemente imprimir cuánto tiempo ha pasado desde un evento determinado? Afortunadamente para ti, hay una pequeña biblioteca de JavaScript llamada moment.js que puedes colocar en la carpeta de tu sitio web y usar de inmediato.

Cosas geniales que puedes hacer con él

La primera parada es crear un nuevo objeto de momento. Esto se hace llamando a la función global moment(). Si lo deja vacío, utilizará la hora actual. De lo contrario, puede pasar una marca de tiempo, una matriz o una cadena con un formato que se analizará en una fecha.

Crea un objeto de momento

// 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]);

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

Trabajar con el tiempo

// 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 puede ver, el método de formato es lo que necesita para convertir un objeto de momento en algo legible. Hay muchas opciones de formato para elegir y son más fáciles de recordar que las que obtiene en la función de fecha de PHP.

Trabajar 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 para producir diferencias de tiempo legibles. Escala automáticamente el período que devuelve de segundos a años.

Tiempo de duración

// 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 toma una cantidad de milisegundos y crea un nuevo objeto. Al usar su método humanize(), obtenemos una versión legible por humanos.

¡No hay tiempo que perder!

Espero que esta breve descripción le haya dado una buena idea de lo que es posible con moment.js. Si desea obtener más información, siga el proyecto en github y lea los ejemplos y la documentación en su página de inicio.


No