JavaScript Moment で日付を扱う #2

株式会社リュディアです。JavaScript Moment で日付を扱う #1 で moment を使う準備はできたので今回は実際に使ってみましょう。掲載するソースコードはすべて GAS の開発環境で動作確認をしています。

JavaScript の標準オブジェクトである Date についてのまとめで行ったように、moment を使って日付や時刻に関する情報を取得する、日付や時刻に関する情報を設定する、を試してみましょう。次のコードを見てください。

function moment1() {
 const now = Moment.moment() ;
 const year = now.year() ;
 const month = now.month() ;
 const date = now.date() ;
 const hours = now.hours() ;
 const minutes = now.minutes() ;
 const seconds = now.seconds() ;
 const milliseconds = now.milliseconds() ;
 
 console.log( year ) ;
 console.log( month ) ;
 console.log( date ) ;
 console.log( hours ) ;
 console.log( minutes ) ;
 console.log( seconds ) ;
 console.log( milliseconds ) ;
}

// 実行結果
// 2020
// 8
// 2
// 21
// 11
// 19
// 359

JavaScript Moment で日付を扱う #1 でも記載したように、GASの開発環境でmoment オブジェクトを生成する際には Momemt.moment( ) のように moment の前に Moment. をつけるのを忘れないようにしてください。まず const now = Moment.moment( ) で今現在の日付の情報を取得します。次に now から日付、時刻の各要素を取り出してみます。標準オブジェクト Date では get*** というメソッドで取得していましたが moment では "get" は不要です。他のメソッドを見ても非常にシンプルですね。

month は標準オブジェクト Date の getMonth( ) と同様に、JavaScript 内部の情報は実際の月よりも 1 だけ小さい値になっています。この例では month の値は 8 ですが、今は 9 月です。Date オブジェクトと同様に注意してください。

日付や時刻に関する情報を取得する方法はの次は日付や時刻に関する情報を設定する方法についてです。次のコードをみてください。

function moment2() {
 const now = Moment.moment() ;
 const year = now.year() ;
 const month = now.month() ;
 const date = now.date() ;
 const hours = now.hours() ;
 const minutes = now.minutes() ;
 const seconds = now.seconds() ;
 const milliseconds = now.milliseconds() ;
 
 console.log( year ) ;
 console.log( month ) ;
 console.log( date ) ;
 console.log( hours ) ;
 console.log( minutes ) ;
 console.log( seconds ) ;
 console.log( milliseconds ) ;
 
 const now2 = Moment.moment() ;
 now2.year( 2018 ) ;
 now2.month( 6 ) ;
 now2.date( 22 ) ;
 now2.hours( 14 ) ;
 now2.minutes( 33 ) ;
 now2.seconds( 45 ) ;
 now2.milliseconds( 185 ) ;
 
 console.log( now2.year() ) ;
 console.log( now2.month() ) ;
 console.log( now2.date() ) ;
 console.log( now2.hours() ) ;
 console.log( now2.minutes() ) ;
 console.log( now2.seconds() ) ;
 console.log( now2.milliseconds() ) ;
}

// 実行結果
// 2020
// 8
// 2
// 21
// 18
// 44
// 521
// 2018 <- year( 2018 ) で設定した値が反映
// 6    <- month( 6 ) で設定した値が反映
// 22   <- date( 22 ) で設定した値が反映
// 14   <- hours( 14 ) で設定した値が反映
// 33   <- minutes( 33 ) で設定した値が反映
// 45   <- seconds( 45 ) で設定した値が反映
// 185  <- milliseconds( 185 ) で設定した値が反映

前半は先の例と一緒です。後半の値を設定している部分をみてください。JavaScript の標準オブジェクトである Date では情報を取得する場合は get***、値を設定する場合は set*** を使いましたが、moment を使う場合は取得、設定とも同じメソッドになっていることに注意してください。

この例でも now2. year ( 2018 ) とすることで now2 の持つ月の情報が 2018 に書き換えられていることがわかると思います。他の日付、時刻に関する情報も実行結果を見ると書き換えられていることがわかります。

moment を使った日付、時刻に関する情報の取得、設定についてまとめてみました。今回の例では moment を使う旨味がわかりづらいかもしれません。しかしこれからさらに演算や比較を行う場合に moment の旨味が見えてくると思います。次回からは moment を使って日付や時刻の演算や比較を行っていきます。

では、ごきげんよう。



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