2008-08-28 19 views
14

Javascriptの日付を1日分減らして、月/年を正しくロールバックする必要があります。つまり、「今日」の日付がある場合は、「昨日」の日付を取得する必要があります。Javascriptの日付を1日減算する最も簡単な方法は何ですか?

私はこれを行うときに常に必要以上にコードを取っているようですので、簡単な方法があるのだろうかと思います。

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

[編集:ただ、下記の回答で混乱を避けるために、これははJavaScript問題ではなく、Javaの一つです]

+0

はインクリメントとデクリメントの両方を行うことができます関数です。 http://stackoverflow.com/a/29199863/4021614 –

答えて

27

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

 
console.log(d);

+4

これは間違った日を返します。 UTC -03:00の下で、var d = newを確認します。Date(2014,9,19) d.setDate(d.getDate() - 1); // Oct 17 –

+1

を返します。また、間違った年を返します。新しい日付(新しいDate()。getDate() - 1)は私のために1969を返します –

5
var today = new Date(); 
var yesterday = new Date().setDate(today.getDate() -1); 
3

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

簡易例:

var day = new Date("January 1 2008"); 
day.setDate(day.getDate() -1); 
alert(day); 
3
origDate = new Date(); 
decrementedDate = new Date(sDate.getTime() - (86400 * 1000)); 

console.log(decrementedDate); 
+0

これはうまくいきます! –

3
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 
関連する問題