我需要将 Javascript 日期减少 1 天,以便它正确回滚数月/数年。也就是说,如果我有一个“今天”的日期,我想得到“昨天”的日期。
当我这样做时,似乎总是需要更多的代码,所以我想知道是否有更简单的方法。
最简单的方法是什么?
[编辑:为了避免在下面的答案中混淆,这是一个JavaScript问题,而不是 Java 问题。]
我需要将 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
解决您的问题(和我的问题)的行为似乎超出了规范范围。
似乎需要的是 addDate()、addMonth()、addYear() ...函数。