JavaScript: 2日前の日付を計算するにはどうすればいいですか? [重複] 質問する

JavaScript: 2日前の日付を計算するにはどうすればいいですか? [重複] 質問する

重複の可能性あり:
JavaScript で日付から日数を減算する

基本的に 2 日前の日付を返す JavaScript があります。次のようになります。

var x;
var m_names = new Array("January", "February", "March", 
    "April", "May", "June", "July", "August", "September", 
    "October", "November", "December");

var d = new Date();
var twoDaysAgo = d.getDate()-2;  //change day here
var curr_month = d.getMonth();
var curr_year = d.getFullYear();
var x = twoDaysAgo + "-" + m_names[curr_month] + "-" + curr_year;

document.write(x);

今日が 2012 年 12 月 12 日だとすると、上記の例では 2012 年 12 月 10 日という日付が返されます。新しい月に進むと、または日付を -2 から -15 に変更すると、この方法は動的に機能しないと思います。月の 3 日からのみ機能します。

今日が 2012 年 12 月 12 日で、15 日前の日付を返すようにしたい場合、2012 年 12 月 3 日ではなく、2012 年 11 月 27 日を返すようにするには、これをどのように変更すればよいでしょうか。

助けていただければ幸いです。ありがとうございます! 私は Javascript 初心者です。

ベストアンサー1

日付オブジェクトがある場合は、日付から 2 を引くことで 2 日前に設定できます。

var d = new Date();
d.setDate(d.getDate() - 2);
console.log(d.toString());

// First of month
var c = new Date(2017,1,1); // 1 Feb -> 30 Jan
c.setDate(c.getDate() - 2);
console.log(c.toString());

// First of year
var b = new Date(2018,0,1); // 1 Jan -> 30 Dec
b.setDate(b.getDate() - 2);
console.log(b.toString());

おすすめ記事