JavaScript Moment で日付を扱う #1

株式会社リュディアです。JavaScript 日付を扱う #1JavaScript 日付を扱う #2 , JavaScript 日付を扱う #3 で JavaScript の Dateオブジェクトを使った日付の情報取得、設定方法、演算についてまとめました。今回から外部ライブラリである moment を使った日付の扱い方についてまとめていきます。掲載するソースコードはすべて GAS の開発環境で動作確認をしています。

moment とは何でしょうか?moment は JavaScript のライブラリの1つです。moment 開発元の WEB ページはこちらになっており詳細なドキュメントや最新情報を入手できます。こちらにも記載されているように moment は JavaScript を Node.js または ブラウザで実行する場合を対象としています。ここで Node.js や ブラウザも GAS と同様に実行環境の1つと考えてもらって問題ないです。そして GAS にも moment が移植されています。

最初にGAS の開発環境で moment を使えるように設定をしましょう。以下の方法にしたがって moment の設定を行ってください。GAS の開発環境のスクリプトエディタの画面でリソースメニューからライブラリを選択してください。

1_moment_準備

以下のような画面が表示されましたか?「図書館」は Library または Libraries を日本語に自動翻訳してしまったのでしょうね。

2_moment_準備2

この画面の下部の Add a library に moment の スクリプト ID またはライブラリ ID と呼ばれる 
MHMchiX6c1bwSqGM1PZiW_PxhMjh3Sh48
を入力し、入力画面の右側にある追加を選択してください。

3_moment_準備3

すると以下のような画面が表示されます。環境によって表示される内容が異なる場合があります。Identifier が Moment になっていることを確認し、バージョンは最新のものを選択してください。2020 年 9 月 2 日ではバージョン 9 が最新となっています。

4_moment_準備4

最後に左下にある保存を選択してください。これで moment を使う環境ができました。では動作確認も兼ねて以下の短いプログラムを動作させてみましょう。const now = Moment.moment( ); の太字部分が重要です。これは GAS で moment を使う場合に必要ですが、Node.js や ブラウザで moment を使う場合には const now = moment( ); で OK となります。

function myFunction() {
 const now = Moment.moment() ;
 console.log( now ) ;
}

// 実行結果
// { _i: undefined,
//   _f: undefined,
//   _l: undefined,
//   _strict: undefined,
//   _isUTC: false,
//   _pf: 
//    { empty: false,
//      unusedTokens: [],
//      unusedInput: [],
//      overflow: -2,
//      charsLeftOver: 0,
//      nullInput: false,
//      invalidMonth: null,
//      invalidFormat: false,
//      userInvalidated: false,
//      iso: false },
//   _d: Tue Sep 01 2020 17:50:20 GMT+0900 (日本標準時) }

実行結果は何が何やらわけがわからないですが、これは moment オブジェクトを直接表示したために内部情報が表示されているためです。今回は moment が利用可能になっていることの確認までです。

では、ごきげんよう。



この記事が気に入ったらサポートをしてみませんか?