将Javascript中的日期减少1天的最简单方法是什么?

Chr*_*123 17 javascript browser date

我需要将Javascript日期减少1天,以便它正确地回滚数月/年.也就是说,如果我有'今天'的日期,我想得到'昨天'的日期.

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

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

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

Mar*_*ius 28

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

console.log(d);
Run Code Online (Sandbox Code Playgroud)

  • 这将是错误的一天.在UTC -03:00下,检查var d = new Date(2014,9,19)d.setDate(d.getDate() - 1); //将于10月17日返回 (5认同)
  • 它还返回错误的年份。new Date(new Date().getDate()-1) 为我返回 1969 (2认同)

lia*_*nan 5

var today = new Date();
var yesterday = new Date().setDate(today.getDate() -1);
Run Code Online (Sandbox Code Playgroud)


Phi*_*lds 5

getDate()-1应该能解决问题

快速示例:

var day = new Date( "January 1 2008" );
day.setDate(day.getDate() -1);
alert(day);
Run Code Online (Sandbox Code Playgroud)


adr*_*an7 5

origDate = new Date();
decrementedDate = new Date(origDate.getTime() - (86400 * 1000));

console.log(decrementedDate);
Run Code Online (Sandbox Code Playgroud)


Sun*_*B N 5

 day.setDate(day.getDate() -1); //will be wrong
Run Code Online (Sandbox Code Playgroud)

这将是错误的一天.在UTC -03:00下,检查

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

更好用:

var n = day.getTime();
n -= 86400000;
day = new Date(n); //works fine for everything
Run Code Online (Sandbox Code Playgroud)