Yuki's bnb blog

こんにちは!Yukiといいます。本業のかたわら大阪で2016年夏から民泊運営のお手伝いをしています。民泊業務に関する様々なことを自動化・効率化したいと思い日々活動しています。 お気軽にコメント・お問い合わせください :) TOEICスコア 985

【超便利!】GASのややこしい日付&時刻処理はMoment.jsで解決!

f:id:yukibnb:20190720232616p:plain

こんにちは!
Yuki (@yukibnb) です。


Google Apps Script (GAS) を使用していると日付や時刻を扱う機会が多くあります。

GASでは標準でDateオブジェクトが用意されているのですが、これがなかなかややこしくてとっつきにくいです。「Dateオブジェクトややこしい!何かいい方法ないかな」と思っているかは多いのではないでしょうか。

Dateオブジェクトは単純に日付や時刻を表示するだけならまだしも、日付や時刻を足したり引いたりしたい場合より一層ややこしくなります。

しかし!GASではMoment.jsというライブラリを使用することで、日付や時刻をより直観的に取り扱うことができるようになります。

この記事ではMoment.jsライブラリの導入方法を紹介します。導入はとても簡単なので日付や時刻処理でお困りの方は是非一度お試しください。
 

 

Moment.jsライブラリの概要

そもそもライブラリって何?

GASの世界にはライブラリというものがたくさんあります。Moment.jsとは数あるライブラリのうちのひとつです。

ライブラリとはかみ砕いて言うと「複雑で面倒な処理を他の人が使いやすいようにパッケージ化したもの」です。

僕たちががんばってややこしいコードを書かなくてもライブラリが代わりに処理してくれるという、なんともすばらしい助っ人のようなものです。

Moment.jsは日付や時刻処理に特化したライブラリなので、導入すると日付や時刻処理がとーっても簡単になるわけです。

もしMoment.js以外のライブラリに興味がありましたら「GAS ライブラリ おすすめ」と検索するといろいろ出てきます。

 

Moment.jsで簡単にできること

Dateオブジェクトで書くと難しいけどMoment.jsでは簡単に書けることはたくさんあります。

例えば以下のようなことです。

 
◆日付や時刻をフォーマット
Dateオブジェクトで現在日時を読み取ると「Sat Mar 02 2019 14:49:38 GMT+0900 (JST)」のようになります。

このままだと使いにくいので目的に応じて「3月2日」「2019/03/02」「190302」「14:49」「02:49 PM」というようにフォーマットする必要があります。

Dateオブジェクトではフォーマットが面倒ですが、Moment.jsなら簡単にできます。

 
◆日付や時刻を足したり引いたり
Moment.jsでは「今日から〇日後」「特定の日から〇日後」「現在時刻から〇時間後」「現在時刻から〇時間前」という計算が簡単にできます。

 
◆日付や時刻を比較する
例えば締切日まであと何日あるか調べたい場合、締切日と本日の二つの日付の差分を計算します。

単純に二つの数字の差分を計算するだけだと「15 - 7」のように簡単ですが、日付や時刻の場合はそう単純ではありません。Dateオブジェクトで計算しようとするとかなり面倒です。

Moment.jsを使うと簡単にできます。

  

簡単!Moment.jsの導入方法

ではMoment.jsの導入へと進みましょう。簡単なのですぐ終わります!

 
まずスクリプトを開き、画面上部の「リソース」→「ライブラリ」をクリックします。
f:id:yukibnb:20190302135338j:plain:w500

 
すると以下ポップアップが表示されます。
f:id:yukibnb:20190302142115j:plain:w500

 
ライブラリを追加」の入力ボックスに以下Moment.jsライブラリのプロジェクトキーをコピペしてください。
 

Moment.jsのプロジェクトキー

MHMchiX6c1bwSqGM1PZiW_PxhMjh3Sh48

 
コピペしたら「追加」をクリックしてください。
f:id:yukibnb:20190302142213j:plain:w500

 
Momentが追加されました。次に「バージョン」のドロップダウンをクリックし、最新のバージョンを選択します。2019/3/2現在では「9」を選択します。
f:id:yukibnb:20190302142335j:plain:w500
 
f:id:yukibnb:20190302142439j:plain:w500

 
最後に「保存」をクリックするとMoment.jsの導入が完了です。
f:id:yukibnb:20190302142513j:plain:w500

 
これでMoment.jsをGASで使用できるようになりました!導入方法はあっという間でしたね。

 

注意点

注意点というほどではありませんがライブラリはプロジェクトごとに導入します。

異なるプロジェクトでMoment.jsなどのライブラリを使用したい場合、そのプロジェクトにも今回同様ライブラリを導入する必要があります。

「あれ、なぜかMoment.jsのスクリプトが動かない」という場合、単純にそのプロジェクトにMoment.jsを導入漏れしているだけかもしれませんので「リソース」→「ライブラリ」から確認してください。

 

まとめ

今回はGASで日付や時刻処理を簡単に行うためのライブラリ「Moment.js」の導入方法を紹介しました。

無事導入が完了したので次回記事では実際にどのようにスクリプトを書くのか、どれくらい簡単&便利になるのかを実際のコード事例を交えて紹介したいと思います。

お楽しみに!


【次回記事はこちら!】
www.yukibnb.com