我需要将Javascript日期减少1天,以便正确回滚到几个月/年。也就是说,如果我有一个“今日”的日期,我想获得'昨日'的日期。在Javascript中将日期递减1天的最简单方法是什么?
当我这样做时,它似乎总是需要更多的代码,所以我不知道是否有一个简单的方法。
这样做的最简单方法是什么?
[编辑:只是为了避免在下面的答案混乱,这是一个的JavaScript问题,而不是Java ONE]
我需要将Javascript日期减少1天,以便正确回滚到几个月/年。也就是说,如果我有一个“今日”的日期,我想获得'昨日'的日期。在Javascript中将日期递减1天的最简单方法是什么?
当我这样做时,它似乎总是需要更多的代码,所以我不知道是否有一个简单的方法。
这样做的最简单方法是什么?
[编辑:只是为了避免在下面的答案混乱,这是一个的JavaScript问题,而不是Java ONE]
var d = new Date();
d.setDate(d.getDate() - 1);
console.log(d);
这将返回错误的一天。在UTC -03:00下检查var d = new Date(2014,9,19) d.setDate(d.getDate() - 1); //将返回10月17日 – 2014-08-04 08:14:21
它也返回错误的一年。新日期(新日期()。getDate() - 1)为我返回1969 – 2015-05-22 15:05:56
var today = new Date();
var yesterday = new Date().setDate(today.getDate() -1);
getDate()-1
应该做的技巧
快速示例:
var day = new Date("January 1 2008");
day.setDate(day.getDate() -1);
alert(day);
setDate(dayValue)
dayValue
是从1到31的整数,表示该月的当天。
从https://developer.mozilla.org/en/Core_JavaScript_1.5_Reference/Global_Objects/Date/setDate
行为解决您的问题(和我)似乎超出规定范围的。
似乎需要的是addDate(),addMonth(),addYear()...函数。
origDate = new Date();
decrementedDate = new Date(sDate.getTime() - (86400 * 1000));
console.log(decrementedDate);
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
这里是既可以做递增和递减函数: http://stackoverflow.com/a/29199863/4021614 – 2015-03-22 21:11:14