22

Javascript の日付を 1 日減らす必要があるため、月/年を正しくロールバックできます。つまり、「今日」の日付がある場合、「昨日」の日付を取得したいということです。

これを行うと、常に必要以上のコードが必要になるように思われるので、もっと簡単な方法があるかどうか疑問に思っています。

これを行う最も簡単な方法は何ですか?

[編集: 以下の回答で混乱を避けるために、これはJava ではなくJavaScriptの質問です。]

4

7 に答える 7

33

var d = new Date();
d.setDate(d.getDate() - 1);

console.log(d);

于 2008-08-28T09:56:01.370 に答える
5
 day.setDate(day.getDate() -1); //will be wrong

これは間違った日を返します。UTC -03:00 の下で、

var d = new Date(2014,9,19);
d.setDate(d.getDate()-1);// will return Oct 17

より良い使用:

var n = day.getTime();
n -= 86400000;
day = new Date(n); //works fine for everything
于 2014-08-04T08:21:09.690 に答える
5
var today = new Date();
var yesterday = new Date().setDate(today.getDate() -1);
于 2008-08-28T09:55:16.643 に答える
3

getDate()-1トリックを行う必要があります

簡単な例:

var day = new Date( "January 1 2008" );
day.setDate(day.getDate() -1);
alert(day);
于 2008-08-28T09:58:49.647 に答える
3
origDate = new Date();
decrementedDate = new Date(origDate.getTime() - (86400 * 1000));

console.log(decrementedDate);
于 2013-12-05T18:25:12.763 に答える
1

setDate(dayValue)

dayValue月の日を表す1から31までの整数です。

https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/Date/setDateから

あなたの問題(そして私の問題)を解決する振る舞いは、仕様の範囲外のようです。

必要と思われるのは、addDate()、addMonth()、addYear()...関数です。

于 2008-12-10T17:59:36.670 に答える