2015-04-12 69 views
-1

我需要填充格式化爲60天的單個日期的數組。如果我手工輸入它,它會看起來像:unavailableDates = [「12-4-2015」,「13-4-2015」,。 。 「2015年11月5日」。我將在函數中使用這個數組else。這是我的功能,不工作的摘錄。我不確定我的誤解。輸出單個日期的Javascript數組

function unavailable(date) { 
     var unavailableDates = []; 
     var i = Date.today().toString('dd-MM-yyyy'); 
     var j = Date.today().addDays(60).toString('dd-MM-yyyy'); 
     while(i < j){ 
     unavailableDates.push(new date(i)).toString('dd-MM-yyyy'); 
     i=new Date(i.setDate(i.getDate() + 1)); 
     } 
     } 
+2

哪裏'Date.today()'從何而來? –

回答

-1

要麼將​​不可用日期的聲明移到函數之外,要麼返回要分配的函數內的不可用日期。

基於作用域,unavailableDates只能在函數內使用,就像你寫的那樣。

你應該嘗試像...

var unavailableDates = []; 

...和...分開

function unavailable(date) { 
    var i = Date.today().toString('dd-MM-yyyy'); 
    var j = Date.today().addDays(60).toString('dd-MM-yyyy'); 
    while(i < j) { 
     unavailableDates.push(new date(i)).toString('dd-MM-yyyy'); 
     i = new Date(i.setDate(i.getDate() + 1)); 
    } 
} 
1

你的代碼有錯誤:

Date.today是沒有的功能,

toString方法沒有得到格式化日期,你必須格式化t將其在你的代碼

試試這個功能:

function unavailable(days) { 
    var i = Date.now(); 
    var unavailableDates = []; 
    var j = i + days * 24 * 60 * 60 * 1000; 
    while(i < j) { 
     var d=new Date(i); 
     unavailableDates.push(d.getDate() + '-' + (d.getMonth() + 1) + '-' + (d.getYear() + 1900)); 
     i += 24 * 60 * 60 * 1000; 
    } 
    return unavailableDates; 
} 

var numOfDays = 30; 
var populated = unavailable(numOfDays); 

console.log(populated); // ["12-4-2015","13-4-2015", . . ."11-5-2015"] 
+0

謝謝,這讓我再次去。 – cravaus