2008-08-28 52 views
14

我需要将Javascript日期减少1天,以便正确回滚到几个月/年。也就是说,如果我有一个“今日”的日期,我想获得'昨日'的日期。在Javascript中将日期递减1天的最简单方法是什么?

当我这样做时,它似乎总是需要更多的代码,所以我不知道是否有一个简单的方法。

这样做的最简单方法是什么?

[编辑:只是为了避免在下面的答案混乱,这是一个的JavaScript问题,而不是Java ONE]

+0

这里是既可以做递增和递减函数: http://stackoverflow.com/a/29199863/4021614 – 2015-03-22 21:11:14

回答

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); //将返回10月17日 – 2014-08-04 08:14:21

+1

它也返回错误的一年。新日期(新日期()。getDate() - 1)为我返回1969 – 2015-05-22 15:05:56

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