2013-04-25 72 views
0

我試圖在Javascript中基於開始日期和結束日期創建一個日期數組。我需要的日期格式看起來像2013-04-25使用Javascript創建日期數組

我的代碼顯然不起作用,但我似乎無法弄清楚爲什麼。有人可以協助嗎?

//get today's date 
var today = new Date(); 
today.setDate(today.getDate()); 

//get date from last week -7 
var prevWeek = new Date(); 
prevWeek.setDate(prevWeek.getDate() -7); 

//set initial date parameters 
    var fromDate = prevWeek; 
    var toDate = today; 

//set date parameters to input parameters 
function setDates() { 
    fromDate =document.getElementById('fromDate').value; 
    toDate = document.getElementById('toDate').value; 
}; 

var dates = new Array(); 

//create date array 
function setArray() { 
    for(i = fromDate.getDate(), i <= toDate.getDate(), i.setDate(i.getDate() +1)) 
    { 
    dates.push(new Date(i)); 
    }; 
}; 

//format date array 
function formDates() { 
    for(i = 0, i <= dates.length, i++) 
    { 
     var dd = dates[i].getDate(); 
     var mm = dates[i].getMonth()+1; 
     var yyyy = dates[i].getFullYear(); 
     if(dd<10) {dd = '0' + dd}; 
     if(mm<10){mm = '0' + mm}; 
     dates[i] = yyyy + '-' + mm + '-' + dd; 
    }; 
}; 
+5

你說這是行不通的。你在遇到什麼?一點都沒有?或者你有錯誤? – sircapsalot 2013-04-25 15:02:25

+1

你的'setArray()'給你帶來麻煩,我會重新思考這個循環,你的循環簽名也是錯誤的。他們應該用';'分隔。 - http://www.jslint.org/ +如果你可以給我們你的HTML將是偉大:) – 2013-04-25 15:03:41

+0

@limelights,這是問題!我正在使用','而不是';'。 – 2013-04-25 15:11:04

回答

3

您的循環簽名是錯誤的。

他們應該;分隔,而不是一個,

for循環正確的JavaScript是犯了這樣的:

for(var i = 0; i <= 1000; i++){ 
} 

使用這裏var語句也被認爲是最好的做法是因爲JavaScript,否則提升您的i變量使其成爲全局函數,或最壞的情況下,您的整個js文件。