JavaScriptでタイムスタンプを取得するにはどうすればいいですか?

JavaScriptでタイムスタンプを取得するにはどうしたらいいですか?

Unix timestamp]1に似たもの、つまり、現在の時刻と日付を表す1つの数字です。数字でも文字列でもどちらでも構いません。

ソリューション

Short & Snazzy:

+ new Date()

plusのような単項演算子は、DateオブジェクトのvalueOf`メソッドを起動し、タイムスタンプを(変更せずに)返します。

詳細:

現在のほとんどのブラウザでは、[Date.now()`][1]を使用して、ミリ秒単位のUTCタイムスタンプを取得することができます。ただし、IE8以前は例外です(互換性テーブル参照)。

このためのシムを簡単に作ることができます。

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

タイムスタンプを単位で取得するには、次のようにします。

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

あるいは、次のようになります。

Date.now() / 1000 | 0

これは若干速くなるはずですが、可読性も低くなります(この回答を参照)。

私はDate.now()(互換性シム付き)の使用をお勧めします。Date.now()の方が短いし、新しいDateオブジェクトを作らないので、若干良いと思います。しかし、互換性を最大限に保つためにシムを必要としない場合は、"old "メソッドを使用してミリ秒単位でタイムスタンプを取得することができます。

new Date().getTime()

これを秒に変換するには次のようにします。

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

また、先ほど紹介した valueOf メソッドを使うこともできます。

new Date().valueOf()

タイムスタンプ(ミリ秒)

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

[1]: http://www.ecma-international.org/ecma-262/5.1/#sec-15.9.4.4

解説 (16)
var time = Date.now || function() {
  return +new Date;
};

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