Jak získáte časové razítko v JavaScriptu?

Něco podobného časovému razítku Unixu, to je jediné číslo, které představuje aktuální čas a datum. Buď jako číslo nebo řetězec.

Odpověď

Short &Snazzy:

+ new Date()

Unární operátor jako plus spustí valueOf metoda v Date objekt a vrátí časové razítko (bez jakékoli změny).

Podrobnosti:

Téměř ve všech současných prohlížečích můžete použít Date.now() získat časové razítko UTC v milisekundách; významnou výjimkou je IE8 a starší (viz tabulka kompatibility).

K tomu si však můžete snadno vyrobit podložku:

if (!Date.now) {
    Date.now = function() { return new Date().getTime(); }
}

Chcete-li získat časové razítko za sekundy , můžete použít:

Math.floor(Date.now() / 1000)

Nebo můžete použít:

Date.now() / 1000 | 0

Což by mělo být o něco rychlejší, ale také hůře čitelné.
(viz také tuto nebo tuto odpověď s dalším vysvětlením pro bitové operátory).

Doporučuji použít Date.now() (s podložkou kompatibility). Je o něco lepší, protože je kratší a nevytváří nový Date objekt. Pokud však nechcete podložku a maximální kompatibilitu, můžete použít „starou“ metodu k získání časového razítka v milisekundách :

new Date().getTime()

Které pak můžete převést na sekundy takto:

Math.round(new Date().getTime()/1000)

A můžete také použít valueOf metoda, kterou jsme si ukázali výše:

new Date().valueOf()

Časové razítko v milisekundách

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());