詳解JavaScript對(duì)Date對(duì)象的操作問題(生成一個(gè)倒數(shù)7天的數(shù)組)
問題描述:
使用JavaScript生成一個(gè)倒數(shù)7天的數(shù)組。
比如今天是10月1號(hào),生成的數(shù)組是["9月25號(hào)","9月26號(hào)","9月27號(hào)","9月28號(hào)","9月29號(hào)","9月30號(hào)","10月1號(hào)"]。
這個(gè)難點(diǎn)就是需要判斷這個(gè)月份(可能還需要上一個(gè)月份)是30天還是31天,而且還有瑞年的2月28天或者29天。
解答思路:
不需要那么復(fù)雜,在js中非常簡單,因?yàn)閖s的date對(duì)象是可以參與數(shù)學(xué)運(yùn)算的?。?!看下面的代碼:
var now = new Date('2012/3/2 12:00:00'); // 這個(gè)算法能自動(dòng)處理閏年和非閏年。2012年是閏年,所以2月有29號(hào) 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); // 這個(gè)是關(guān)鍵!?。p去一天的毫秒數(shù)效果就是把日期往前推一天 i++; } console.log(s);
結(jié)果如圖:
如果需求不是指定某一天的時(shí)間,而是根據(jù)系統(tǒng)當(dāng)前的時(shí)間,來計(jì)算也是可以的。
根據(jù)當(dāng)前系統(tǒng)時(shí)間,來計(jì)算這個(gè)倒數(shù)7天的數(shù)組:
var now = new Date(); // 這個(gè)算法能自動(dòng)處理閏年和非閏年。2012年是閏年,所以2月有29號(hào)
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); // 這個(gè)是關(guān)鍵?。?!減去一天的毫秒數(shù)效果就是把日期往前推一天
i++;
}
console.log(s);
結(jié)果如圖所示:
以上就是本文的全部內(nèi)容,希望對(duì)大家學(xué)習(xí)js date對(duì)象操作有所幫助。下篇文章給大家介紹有關(guān)js的日期格式化問題,詳細(xì)了解請(qǐng)點(diǎn)擊javascript Date format。
相關(guān)文章
echarts如何實(shí)現(xiàn)動(dòng)態(tài)曲線圖(多條曲線)
這篇文章主要介紹了echarts如何實(shí)現(xiàn)動(dòng)態(tài)曲線圖(多條曲線),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-07-07JavaScript實(shí)現(xiàn)重力下落與彈性效果的方法分析
這篇文章主要介紹了JavaScript實(shí)現(xiàn)重力下落與彈性效果的方法,結(jié)合實(shí)例形式分析了javascript重力下落及彈性效果的原理與具體實(shí)現(xiàn)技巧,需要的朋友可以參考下2017-12-12使用Require.js封裝原生js輪播圖的實(shí)現(xiàn)代碼
這篇文章主要介紹了使用Require.js封裝原生js輪播圖的實(shí)現(xiàn)代碼,需要的朋友可以參考下2017-06-06