1. ホーム
  2. javascript

[解決済み] Moment.jsで日付の書式設定と日数の減算を行う。

2022-03-13 02:40:17

質問

昨日の日付を格納するための変数が欲しい。 DD-MM-YYYY をMoment.jsで使用しています。つまり、今日が15-04-2015であれば、1日引いて14-4-2015としたいのです。

こんな感じで、いくつか組み合わせを試してみました。

startdate = moment().format('DD-MM-YYYY');
startdate.subtract(1, 'd');

とこれを

startdate = moment().format('DD-MM-YYYY').subtract(1, 'd');

と、これまた

startdate = moment();
startdate.subtract(1, 'd');
startdate.format('DD-MM-YYYY')

でも、出ないんです...。

どうすればいいですか?

複数の奇妙なことが起こっていますね。最初のものはあなたの投稿で編集されましたが、それはメソッドが呼び出される順序に関係していました。

.format は文字列を返します。文字列には subtract メソッドを使用します。

2つ目の問題は、日を引いているのに、それを実際に変数として保存していないことです。

そうすると、コードは次のようになります。

var startdate = moment();
startdate = startdate.subtract(1, "days");
startdate = startdate.format("DD-MM-YYYY");

しかし、これを連鎖させることができます。この場合、次のようになります。

var startdate = moment().subtract(1, "days").format("DD-MM-YYYY");

違いは、momentは破壊的なので、startdateにやっている変更を設定していることです。