技術系TIPS
PR

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

saratogax
記事内に商品プロモーションを含む場合があります

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

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

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

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

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

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

「エポックミリ秒」から「日時」への変換ツールも作ってみましたので、興味のある方は使ってみてください。

あわせて読みたい
エポックミリ秒を日時に変換(逆変換)するツール
エポックミリ秒を日時に変換(逆変換)するツール

Dateを使う

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

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

var ms = Date.now()
console.log("ms: " + ms)

結果は以下の通りです。

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 を使います。

<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.24.0/moment.min.js" integrity="sha256-4iQZ6BVL4qNKlQ27TExEhBN1HFPvAvAMbFavKKosSWQ=" crossorigin="anonymous"></script>

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

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)

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

console.log("s: " + moment().unix());
console.log("ms: " + moment().valueOf());

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

s: 1577586912
ms: 1577586912196

ABOUT ME
saratoga
saratoga
フリーランスエンジニア
仕事にも趣味にも IT を駆使するフリーランスエンジニア。技術的な TIPS や日々の生活の中で深堀りしてみたくなったことを備忘録として残していきます。
記事URLをコピーしました