我需要减Javascript日期1天,以便它卷回跨越几个月/几年是否正确。也就是说,如果我有一个新的"今天",我想要得到的日期为昨天.

它似乎总是采取更多的代码比需要的时候我这么做所以我想知道如果有任何简单的方法。

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

[编辑:只是为了避免混淆,在回答下面,这是一个 JavaScript 问题不是一个Java一个。]

有帮助吗?

解决方案

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

console.log(d);

其他提示

var today = new Date();
var yesterday = new Date().setDate(today.getDate() -1);
 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

getDate()-1 应该做的把戏

简单的例子:

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

console.log(decrementedDate);

setDate(dayValue)

dayValue 是一个整数,从1日至31日,代表本月的一天。

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

该行为的解决你的问题(和地雷),似乎是出的规范范围。

什么似乎是需要时间(),addMonth(),addYear()...功能。

工作的日期在JS可以是一个头痛的问题。所以最简单的方法是使用 moment.js 对于任何新行动。

减去一天:

const date = moment().subtract(1, 'day')
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top