Anders är en webbutvecklare och hårdrockare som gillar brädspel, kaffe och öl.

Detta är ett arkiverat inlägg, som importerats hit för referens. Det kan se konstigt ut och innehålla utdaterad information eller inaktuella åsikter.

UTC och unix timestamps i JavaScript

Nyligen fick jag en tacksam uppgift från en kollega på jobbet; en JavaScript-funktion som räknar ut antalet dagar mellan två datum. Det är ingenting jag själv haft behov av att göra med JavaScript, men i PHP är det riktigt rättframt med mktime() och litet lågstadiematte.

Att kunna köra mktime() i JavaScript är rätt kört, men liknande funktionalitet borde finnas i JavaScript. En snabb koll bekräftade detta; Date objektet innehåller funktionen Date.UTF() som är identisk med PHPs motsvarighet. Det ger oss rum att börja hantera datum.

var start,end,diff,day;

// a day, in seconds.
day = 24*60*60;

// dates to diff.
start = Date.UTC(2009,1,12);
end = Date.UTC(2009,2,14);

// calc diff in seconds.
diff = (end-start)/1000;

// get dff in days.
alert( diff / day ); // 30

Istället för att räkna dag går det lika bra att använda sekunder eller minuter. Då det är millisekunder inblandade finns det gott om utrymme för egen fantasi.