JavaScript

JavaScriptのmomentでエポックミリ秒を取得する

エポックミリ秒とは、UNIX エポックからの経過ミリ秒数のことです。

最近は「エポック秒(10桁)」よりも「ミリ秒(13桁)」を使う機会が増えてきたように感じています。

それは、Google や Apple をはじめとする主要な API のレスポンスの日付項目がエポックミリ秒であることです。

よって、MySQL でも DateTime(3) のように、ミリ秒まで扱えるカラムを設けることも多くなりました。

いろいろな言語を触る場面で、このエポックミリ秒を使う機会があるのですが、今回は JavaScript で簡単に取得できる方法を紹介します。

また、最近よく日付操作で利用されている moment のライブラリを使用していきます。

Dateを使う

今回は moment を利用する前提ですが、先に 1 点、補足しておきたいと思います。

実は、Date を使えば簡単にエポックミリ秒を算出することができます。

結果は以下の通りです。

ms: 1577547893566

もちろん、これで済むならこの記事はここで終了となりますが、プロジェクトによっては「日付操作は moment で統一して」と言われるケースもあるでしょう。

面倒だなっと思うこともありますが、その気持ちはわからなくありません。

momentのライブラリを使用する

では、同様の操作を moment を利用して試してみます。

既にライブラリをロードしている場合はそのままロジックを見てもらえればと思いますが、まだの方はライブラリの読み込みからですね。

公式サイトで最新バージョンを確認してダウンロードしてみましょう。
(2019年12月末時点の最新バージョンは 2.24.0 でした)

Parse, validate, manipulate, and display dates and times in JavaScript.

Moment.js 2.24.0

自分のサイト内に設置する必要がない方は、CDN で提供されているものを使いましょう。

[CDN] moment.js

Moment.js 2.24.0

今回は moment.min.js を使います。

エポック秒とエポックミリ秒

moment の公式ドキュメントを読むと、さまざまな日付操作が紹介されています。

Moment was designed to work both in the browser and in Node.js.

All code should work in both of these environments, and all unit tests are run in both of these environments.

Moment.js Documentation

その中で、エポック秒とエポックミリ秒に触れられている項目は以下になります。

・Unix Timestamp (seconds)
・Unix Timestamp (milliseconds)

では早速、エポック秒とエポックミリ秒を取得してみましょう。

結果は以下の通り。上が「エポック秒」、下が「エポックミリ秒」になります。

s: 1577586912
ms: 1577586912196

どうしてもダイヤが必要な場合

時間を短縮したい。お店屋さんの生産枠を増やしたい。など、ゲームを進めるうえで、どうしても少しだけダイヤを課金したくなる時ってありますよね。

そんな時は、楽天市場で「itunesカード」を購入すると楽天ポイントの還元があってお得です。

iOS(iPhone)の人に限られてしまいますが、初回購入時に 500 円オフのキャンペーンをしていたり、楽天ポイントも最大で 16 倍とものすごくお得です。

[商品価格に関しましては、リンクが作成された時点と現時点で情報が変更されている場合がございます。]

App Store & iTunes ギフトカード(3,000円)
価格:3000円(税込、送料無料) (2020/5/24時点)