Kā JavaScript programmā iegūt laika zīmogu?
Kaut kas līdzīgs Unix timestamp, tas ir, viens skaitlis, kas apzīmē pašreizējo laiku un datumu. Vai nu kā skaitlis, vai kā virkne.
+ new Date()
Vienbalsīgs operators, piemēram, plus
, iedarbina vērtībaOf
metodi objektā Date
, un tā atgriež laika zīmogu (bez jebkādām izmaiņām).
Detalizācijas:
Gandrīz visās pašreizējās pārlūkprogrammās var izmantot Date.now()
, lai iegūtu UTC laika zīmogu milisekundēs; ievērojams izņēmums ir IE8 un agrāki modeļi (sk. savietojamības tabula).
Tomēr šim nolūkam var viegli izveidot apakšsistēmu:
if (!Date.now) {
Date.now = function() { return new Date().getTime(); }
}
Lai iegūtu laika zīmogu sekundēs, varat izmantot:
Math.floor(Date.now() / 1000)
Vai arī varat izmantot:
Date.now() / 1000 | 0
Tas būtu nedaudz ātrāk, bet arī mazāk salasāms (arī skat. šo atbildi).
Es ieteiktu izmantot Date.now()
(ar savietojamības shim). Tas ir nedaudz labāk, jo ir īsāks un neveido jaunu Date
objektu. Tomēr, ja nevēlaties, lai būtu maksimāli saderīgs, varat izmantot "old" metodi, lai iegūtu laika zīmogu milisekundēs:
new Date().getTime()
Pēc tam to var pārvērst sekundēs šādi:
Math.round(new Date().getTime()/1000)
Varat izmantot arī valueOf
metodi, kuru mēs parādījām iepriekš:
new Date().valueOf()
Timestamp, milisekundēs
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());