我需要將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