Miten saan aikaleiman JavaScriptissä?
Jotain vastaavaa kuin Unix timestamp, eli yksittäinen numero, joka edustaa nykyistä aikaa ja päivämäärää. Joko numerona tai merkkijonona.
+ new Date()
Unaarinen operaattori, kuten plus
, käynnistää valueOf
-metodin Date
-objektissa, ja se palauttaa aikaleiman (ilman mitään muutoksia).
Details:
Lähes kaikissa nykyisissä selaimissa voit käyttää Date.now()
saadaksesi UTC-aikaleiman millisekunneissa; huomattava poikkeus tästä on IE8 ja aikaisemmat (katso yhteensopivuustaulukko).
Voit kuitenkin helposti tehdä tätä varten shimin:
if (!Date.now) {
Date.now = function() { return new Date().getTime(); }
}
Saadaksesi aikaleiman sekunteina voit käyttää:
Math.floor(Date.now() / 1000)
Tai vaihtoehtoisesti voit käyttää:
Date.now() / 1000 | 0
Mikä olisi hieman nopeampaa, mutta myös vähemmän luettavaa (katso myös katso tämä vastaus).
Suosittelen käyttämään Date.now()
(yhteensopivuusshimillä). Se on hieman parempi, koska se on lyhyempi & ei luo uutta Date
-objektia. Jos et kuitenkaan halua leimaa &; maksimaalista yhteensopivuutta, voit käyttää menetelmää "old" saadaksesi aikaleiman millisekunteina:
new Date().getTime()
Jonka voit sitten muuntaa sekunneiksi näin:
Math.round(new Date().getTime()/1000)
Voit myös käyttää edellä esitettyä valueOf
-menetelmää:
new Date().valueOf()
Aikaleima millisekunteina
var timeStampInMs = window.performance && window.performance.now && window.performance.timing && window.performance.timing.navigationStart ? window.performance.now() + window.performance.timing.navigationStart : Date.now();
console.log(timeStampInMs, Date.now());