Moment.jsを使用して日付をフォーマットし、日を減算する


121

変数に昨日の日付DD-MM-YYYYをMoment.jsを使用した形式で保持したいと思います。したがって、今日が2015年4月15日である場合、1日を差し引いて2015年4月4日にします。

私はこのようないくつかの組み合わせを試しました:

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')

しかし、私はそれを取得していません...


フォーマットする前に減算を試しましたか?それをフォーマットするだけで文字列が得られます...
ndugger

単に「d」ではなく、moment()。subtract(10、 "days")?
leopik

「ホールド」として昨日の日付日付、およびあなたはそれを表示する必要がある場合、書式文字列に変換します。
2015

@NickDugger最後の試行はstartdate = moment(); 最初の行に。
私は

format()文字列にする関数です。あなたはそれを最後にすべきです。
jwatts1980 2015

回答:


210

複数の奇妙な出来事があります。最初はあなたの投稿で編集されましたが、それはメソッドが呼び出された順番に関係していました。

.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");

違いは、瞬間が破壊的であるため、startdateをstartdateに行っている変更に設定していることです。


13
moment.js subtractは実際には破壊的です。「時間を引くことで元の瞬間を変化させます」。こちらを参照してください:momentjs.com/docs
manipulating


5

これを試して:

var duration = moment.duration({'days' : 1});
moment().subtract(duration).format('DD-MM-YYYY');

これはあなたに与えます14-04-2015- 今日は15-04-2015です

または、momentjsのバージョンが2.8.0未満の場合は、以下を使用できます。

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

これの代わりに:

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


2

私はあなたがその最後の試みでそれを持っていると思います、あなたはただ文字列をつかむだけです... Chromeのコンソールで..

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

startdate = moment();
startdate.subtract(1, 'd');
myString = startdate.format('DD-MM-YYYY');
"14-04-2015"
myString
"14-04-2015"

2

angularjs moment = "^ 1.3.0"

moment('15-01-1979', 'DD-MM-YYYY').subtract(1,'days').format(); //14-01-1979
or
moment('15-01-1979', 'DD-MM-YYYY').add(1,'days').format(); //16-01-1979
``



2
var date = new Date();

var targetDate = moment(date).subtract(1, 'day').toDate(); // date object

これで、この日付の表示方法をフォーマットしたり、この日付を別の日付と比較したりできます。

toDate()関数がポイントです。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.