問題描述:
使用JavaScript產生一個倒數7天的陣列。
例如今天是10月1號,產生的陣列是["9月25號","9月26號","9月27號","9月28號","9月29號" ,"9月30號","10月1號"]。
這個難點就是需要判斷這個月(可能還需要上一個月份)是30天還是31天,而且還有瑞年的2月28天或29天。
解答思路:
不需要那麼複雜,在js中非常簡單,因為js的date物件是可以參與數學運算的! ! !看下面的程式碼:
var now = new Date('2012/3/2 12:00:00'); // 这个算法能自动处理闰年和非闰年。2012年是闰年,所以2月有29号 var s = ''; var i = 0; while (i < 7) { s += now.getFullYear() + '/' + (now.getMonth() + 1) + '/' + now.getDate() + '\n'; now = new Date(now - 24 * 60 * 60 * 1000); // 这个是关键!!!减去一天的毫秒数效果就是把日期往前推一天 i++; } console.log(s);
結果如圖:
如果需求不是指定某一天的時間,而是根據系統當前的時間,來計算也是可以的。
根據目前系統時間,來計算這個倒數7天的陣列:
var now = new Date(); // 這個演算法能自動處理閏年和非閏年。 2012年是閏年,所以2月有29號
var s = '';
var i = 0;
while (i
s = now.getFullYear() '/' (now.getMonth() 1) '/' now.getDate() 'n';
now = new Date(now - 24 * 60 * 60 * 1000); // 這個是關鍵! ! !減去一天的毫秒數效果就是把日期往前推一天
i ;
}
console.log(s);
結果如圖:
以上就是本文的全部內容,希望對大家學習js date物件操作有所幫助。下篇文章為大家介紹有關js的日期格式化問題,詳細了解請點選javascript Date format。