Rychlý tip:Zacházejte s datem a časem jako šéf s moment.js

Nenávidíte práci s funkcemi data a času JavaScriptu? Viděli jste, kolik kódu je potřeba k jednoduchému vytištění, kolik času uplynulo od určité události? Naštěstí pro vás existuje malá knihovna JavaScriptu s názvem moment.js, kterou můžete vložit do složky na webu a ihned ji používat.

Skvělé věci, které s tím můžete dělat

První zastávkou je vytvoření nového momentového objektu. To se provádí voláním funkce global moment(). Pokud jej necháte prázdné, použije se aktuální čas. Jinak můžete předat časové razítko, pole nebo řetězec ve formátu, který bude analyzován do data.

Vytvořit objekt momentu

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

Všimněte si, že stejně jako v objektu JavaScript Date() začínají měsíce od nuly, takže 3 je duben.

Práce s časem

// 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

Jak můžete vidět, metoda formátování je to, co potřebujete, abyste změnili objekt momentu na něco čitelného. Existuje spousta možností formátování, ze kterých si můžete vybrat a jsou snadněji zapamatovatelné než to, co získáte ve funkci data PHP.

Práce s daty

// 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

Metoda fromNow() je velmi užitečná při vytváření čitelných časových rozdílů. Automaticky mění dobu, po kterou se vrací, z sekund na roky.

Doba trvá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

Metoda trvání trvá několik milisekund a vytvoří nový objekt. Použitím jeho metody humanize() získáme lidsky čitelnou verzi.

Není čas na ztrátu!

Doufám, že vám tento krátký přehled poskytl dobrou představu o tom, co je možné s moment.js. Pokud se chcete dozvědět více, sledujte projekt na githubu a přečtěte si příklady a dokumentaci na jejich domovské stránce.


No