moment.jsで日付までのデータを作成する

今の日付時間を取得するなら、次の一文だけで終わります。

moment()

ただこれで作成したオブジェクトは、現在時刻も含まれるため、diff()で比較するときに不便です。

そんなときはstartOf(‘day’)をつけると0時0分のデータが作成できます。

moment().startOf('day')

ここしばらくは副作用の少ないdate-fnsを使うことが多くなってきました。
また別記事で使い方を説明できたらと思います。

momnet.jsはオブジェクト本体を変更する

次の操作では最初と最後で出力内容が変わります。
(オブジェクトが変更される)

let momentObj  = moment()
console.log(momentObj.format())

momentObj.date(1) // 1日に設定
console.log(momentObj.format()) // 結果が1日に変わる

元のオブジェクトを変更せずに使いたい時はclone()を使えます。

let momentObj  = moment()
console.log(momentObj.format())

momentObj.clone().date(1) // 1日に設定
console.log(momentObj.format()) // 結果は最初と同じ

上記のような使い方をしなければならないので、最近はdate-fnsを使っています。
date-fnsについてはまた別記事でご紹介したいと思います。

moment.jsで当月の日数を出す

ドキュメント見てもすぐに見つからなかったのでメモしておきます。

moment().daysInMonth()

momentjsは元のデータを変更する破壊的(副作用のある)仕様になっているため、最近はdate-fnsを使用しています。

また別の記事でご紹介したいと思います。