Happy 1.5Gs! pic.twitter.com/ke6UI0kip6
— moment.js (@momentjs) 2017年7月14日
(new Date).getTime() == 1500000000000
— JavaScript Daily (@JavaScriptDaily) 2017年7月14日
getTime()
メソッドはUNIX時間(1970年1月1日からの経過時間)をミリ秒単位で返すわけですが、それが15億秒になったということらしい(1Gは10の9乗で10億)。たまたま見つけたのでメモ。20億秒は2033年の5月18日(new Date(2e12)
)。35億秒までは見届けたいけど果たしていけるのか。
同じように経過時間を返すメソッドとしてはDate.now()
があるけど、こちらは静的メソッドなのでnew
してインスタンスを作る必要がない。だから普通はDate.now()
を使った方が良いと思われるけど、Date.now()
はIE8でサポートしていないので使えない(いまさらIE8とか)。それで (new Date()).valueOf()
と書くのがクセになっている。getTime()
じゃなくて、valueOf()
を使う理由は特にない(なんとなくの安心感)。
なお、new
演算子を使う場合、後ろの括弧(()
)はなくても良いらしい。知らなかった。だからJavaScript Dailyのツイートのような (new Date).getTime()
という書き方で問題なく実行できる。だたnew Date
の周りの括弧はnew
演算子よりメンバー演算子の方が優先順位が高いので必要。getTime
の後ろの括弧もないと呼び出しにならないので必要。