JavaScript'te zaman damgasını nasıl alırsınız?

JavaScript'te bir zaman damgasını nasıl alabilirim?

Unix timestamp]1'e benzer bir şey, yani geçerli saati ve tarihi temsil eden tek bir sayı. Ya bir sayı ya da bir dize olarak.

Çözüm

Kısa ve Şık:

+ new Date()

Plusgibi bir tekli işleç,DatenesnesindekivalueOf` yöntemini tetikler ve zaman damgasını (herhangi bir değişiklik yapmadan) döndürür.

Detaylar:

Neredeyse tüm güncel tarayıcılarda UTC zaman damgasını millisaniye cinsinden almak için Date.now() kullanabilirsiniz; bunun dikkate değer bir istisnası IE8 ve öncesidir (bkz. uyumluluk tablosu).

Yine de bunun için kolayca bir şim yapabilirsiniz:

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

Zaman damgasını saniye cinsinden almak için şunu kullanabilirsiniz:

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

Ya da alternatif olarak kullanabilirsiniz:

Date.now() / 1000 | 0

Bu biraz daha hızlı olmalı, ancak aynı zamanda daha az okunabilir olmalıdır (ayrıca bu cevaba bakın).

Date.now()kullanmanızı tavsiye ederim (uyumluluk şimi ile). Bu biraz daha iyidir çünkü daha kısadır ve yeni birDate` nesnesi oluşturmaz. Bununla birlikte, bir shim ve maksimum uyumluluk istemiyorsanız, zaman damgasını millisaniye cinsinden almak için "old" yöntemini kullanabilirsiniz:

new Date().getTime()

Bunu daha sonra aşağıdaki gibi saniyeye dönüştürebilirsiniz:

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

Ayrıca yukarıda gösterdiğimiz valueOf yöntemini de kullanabilirsiniz:

new Date().valueOf()

Milisaniye cinsinden zaman damgası

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());
Yorumlar (16)
var time = Date.now || function() {
  return +new Date;
};

time();
Yorumlar (5)
var timestamp = Number(new Date()); // current time as number
Yorumlar (0)