7
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

GAS版Moment.jsメモ

7
Last updated at Posted at 2020-03-17

タイトルの通り、GAS版Moment.jsを使ってみて分かった事まとめです。
使用バージョンは9です(執筆時点での最新Ver.)

追記:Moment.jsはレガシープロジェクトになりました

Moment.js for Apps ScriptのおおもとであるJSのMoment.jsは2020年9月をもって新機能などの開発は廃止となりました。 詳しくはこちら
今後新規開発するときはあまりMoment.jsを使わない方がいいかもしれません。

JSとしてはLuxonというのが後継となるそうです。
Luxon for Apps Scriptとかできるといいですね!

Moment.jsとは

momentオブジェクトの各要素を使って、

  • 日付をフォーマットして出力
  • 日付の計算・比較

などといった事ができる便利ライブラリ

ライブラリのインポート

スクリプトエディタで[リソース] > [ライブラリ]を押下。
表示されるダイアログのAdd a libraryの所に"MHMchiX6c1bwSqGM1PZiW_PxhMjh3Sh48"を入力すると使えるようになります。

使い方

とりあえず実行例をもくもくと挙げていきます。

今回の比較では'days'しか挙げませんが、'years','months','days','hours','minutes','seconds'とかが使えるはずです(確認してません)

※Logger.log()を省略してます


Moment.moment('2020/03/03'); //momentオブジェクト生成
Moment.moment('2020/03/03').format('YYYY年MM月DD日'); //'2020年03月03日'
Moment.moment('2020/03/10').startOf('month').format(); //月のはじめ2020-03-01T00:00:00+09:00
Moment.moment('2020/03/10').endOf('month').format(); //月のおわり
Moment.moment('2020/03/10').month(); //何月か 3
Moment.moment('2020/03/10').date(); //何日か 10

var start = Moment.moment('2020/03/01');
var end = Moment.moment('2020/03/08');
end.diff(start, "days"); //日付差 7.0

//以下Ver.8で動かない可能性あり
end.isBefore(start, "days"); //指定した日より前かどうか。つまりif(end < start) 結果はfalse
end.isAfter(start,"days"); //if(end > start) true
end.isSame(start,"days"); //同じ日かどうか

本家Moment.jsでは使えるけどGAS版では使えないもの

以下は使えませんでした。

  • isSameOrBefore
  • isSameOrAfter
7
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
4

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?