こちら↓の記事そのまんま。
Get a UNIX timestamp with Javascript
var ts = Math.round(new Date().getTime() / 1000);
new演算子とドット「.」の評価順序を陽に示したい場合は次のように書けばいい。
var ts = Math.round((new Date()).getTime() / 1000);
用途はいろいろあるだろうけど、今回はFlash(SWFファイル)をブラウザにキャッシュさせないために使用。クエリストリングにタイムスタンプを付加して、SWFファイルのURLを毎回変化させる。次のような感じで。
// このコードは swfobject.js(http://code.google.com/p/swfobject/)に依存しています var serial = Math.round(new Date().getTime() / 1000); // タイムスタンプをシリアル番号として利用 var flashvars = { }; var params = { allowScriptAccess: 'sameDomain', allowFullScreen: 'false', scale: 'noscale', quality: 'autohigh', wmode: 'transparent', base: '/swf', menu: 'false', salign: 't' }; var attributes = { id:'movie01', name:'movie01' }; swfobject.embedSWF("/swf/movie.swf?s=" + serial, "myContent", "600", "300", "9.0.0", "/swf/expressInstall.swf", flashvars, params, attributes );
もっとトリッキーな方法
Math.roundやMath.floorを使わずに、浮動小数点数から整数への暗黙の型変換(英語もついでに覚えよう:implicit type conversion)で切り捨てを実現することもできる。
- 補数演算(ビット反転)による切り捨て
-
var ts = ~~(new Date()/1000); //~ が補数演算子。2回作用させれば元の値に戻る
- 論理和演算(OR演算)による切り捨て
-
var ts = new Date()/1000|0; //| がOR演算子。ゼロとのORゆえ実質的には型変換のみ行われる
0 件のコメント:
コメントを投稿