2015-04-12 90 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