Veckans tips är moment.js. Ett JavaScript bibliotek som underlättar hantering av datum. Nedan finner du ett exempel på när det kan vara bra att använda sig av moment.js. Stycket nedan är översatt från deras dokumentation

Date Math vs Time Math
Det är en logisk skillnad mellan Date Math och Time Math.

  • Time Math förutsätter en linjär tidsskala, som bara att öka eller minska UTC-baserade tidsstämpel av summan av de tidsenheter som tillhandahålls.
  • Date Math använder inte en linjär tidsskala, utan snarare ökar eller minskar datum i kalendern. Detta beror på att mängden av tid på en dag, månad eller år är envariabel. 

Till exempel, på grund av sommar- & vinter-tid kan en dag vara mellan 23 och 25 timmar lång. Månader naturligtvis varierar i antal dagar, och på grund av skottår, år varierar i längd också. Date Math kan orsaka vissa intressanta scenarier.

På grund av sommartid (i Sverige 27 mars 2016), kan det hända att dag inte lika 24 timmar:
//date math
moment('2016-03-26 13:00:00').add(1, 'day').format('LLL')
"March 13, 2016 1:00 PM"
//time math
moment('2016-03-26 13:00:00').add(24, 'hours').format('LLL')
"March 13, 2016 2:00 PM"

Eller när det är ett skottår:
moment('2016-01-01').add(1, 'year').format('LL')
"January 1, 2017"
moment('2016-01-01').add(365, 'day').format('LL')
"December 31, 2016"

 

Det finns många exempel och guider på moment.js webbsida. Det finns TypeScript Definition (moment.TypeScript.DefinitelyTyped) vilket gör att det är perfekt att använda i Office 365 utveckling.

av George Norberg