1. ホーム
  2. javascript

[解決済み] 現在の日付から30日前の日付を取得するには?

2022-09-04 03:56:09

質問

開始日と終了日の入力ボックスがあります。デフォルトでは、開始カレンダー入力ボックスは現在の日付の30日前、終了カレンダー入力ボックスは現在の日付になるようにしたいです。以下は、私の日付バーです。

var today = new Date(),
    dd    = today.getDate(),
    mm    = today.getMonth(),
    yyyy  = today.getFullYear(),
    month = ["January", "February", "March",
        "April", "May", "June", "July", "August",
        "September", "October" "November", "December"],
    startdate = month[mm] + ", " + yyyy.toString();

終了日は次のようになります。 var enddate = startdate - 30; 明らかにこれはうまくいきません。

つまり、現在の日付が2011年12月30日であれば、開始日を2011年12月1日にしたいのです。

EDIT: 私の疑問は解けました...なんとなくですが。 Date.today();Date.today().add(-30); は動作しますが、日付の書式は January 13, 2012 . そうではなく Fri Jan 13 2012 10:48:56 GMT -055 (EST) . 何か良い方法はありませんか?

MORE編集部:この記事を書いている時点では2018年です。ただ、使用する モーメント.js . それが一番です。

どのように解決するのですか?

優れた Datejs JavaScript 日付ライブラリ を使ってみてください (オリジナルはもうメンテナンスされていませんので、あなたは この活発にメンテナンスされているフォーク をご覧ください)。

Date.today().add(-30).days(); // or...
Date.today().add({days:-30});

[編集]をクリックします。

また、優れた Moment.js JavaScript 日付ライブラリ :

moment().subtract(30, 'days'); // or...
moment().add(-30, 'days');