Kaip "JavaScript" gauti laiko žymą?
Kažkas panašaus į Unix timestamp, t. y. vienas skaičius, reiškiantis esamą laiką ir datą. Kaip skaičių arba eilutę.
+ new Date()
Toks unarinis operatorius kaip plus
suaktyvina Date
objekto valueOf
metodą ir grąžina laiko žymą (be jokių pakeitimų).
Detalesnė informacija:
Beveik visose dabartinėse naršyklėse galite naudoti Date.now()
, kad gautumėte UTC laiko žymą miliisekundėmis; reikšminga išimtis yra IE8 ir ankstesnės naršyklės (žr. suderinamumo lentelė).
Tačiau tam galite lengvai sukurti pakopinį variantą:
if (!Date.now) {
Date.now = function() { return new Date().getTime(); }
}
Norėdami gauti laiko žymą sekundėmis, galite naudoti:
Math.floor(Date.now() / 1000)
Arba galite naudoti:
Date.now() / 1000 | 0
Tai turėtų būti šiek tiek greičiau, bet taip pat mažiau skaitoma (taip pat žr. šį atsakymą).
Rekomenduočiau naudoti Date.now()
(su suderinamumo priemone). Jis'šiek tiek geresnis, nes yra trumpesnis ir nesukuria naujo Date
objekto. Tačiau, jei nenorite, kad būtų naudojamas "shimamp" &; maksimalus suderinamumas, galite naudoti "old" metodą, kad gautumėte laiko žymą miliisekundėmis:
new Date().getTime()
Jį galite konvertuoti į sekundes taip:
Math.round(new Date().getTime()/1000)
Taip pat galite naudoti valueOf
metodą, kurį parodėme aukščiau:
new Date().valueOf()
Timestampas milisekundėmis
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());