2015-03-03 73 views
-1
for(i=0;i<30;i++){ 

    } 

    var d = new Date(); 
    var curr_date = d.getDate(); 
    var curr_month = d.getMonth() + 1; 
    var curr_year = d.getFullYear(); 
    var formatedDate = curr_date + '/' + curr_month + '/' + curr_year; 

我卡住了,我怎样才能打印出未来30天?循环通过日期和打印格式日期

像2015年3月3日,2015年4月3日,2015年5月3日等..

+0

如果你只是看了你的帖子,你可能会看到这是橡胶清晰的情况下挖调试http://en.wikipedia.org/wiki/Rubber_duck_debugging – 2015-03-06 17:10:22

回答

0

试试这个:

var d = new Date(); 
var curr_day = d.getDate(); 
for(i=0;i<30;i++){ 




    curr_day = curr_day+1; 
    var curr_month = d.getMonth() + 1; 
    var curr_year = d.getFullYear(); 
    var newDate = new Date(curr_year,curr_month,curr_day) 
    var formatedDate = newDate.getDate() + '/' + newDate.getMonth() + '/' + newDate.getFullYear(); 
    formatedDate; 
    } 

你需要增加一天可变

+0

将有33/3/2015哈哈 – 2015-03-03 05:08:11

+0

啊,在这种情况下,使用这个新的代码,它将在必要时增加一个月。 – Pedrumj 2015-03-03 05:16:55

+0

天才破解! thx太多了! – 2015-03-03 06:09:28

0

您可以将所有代码放在循环内的循环下面,然后为每次迭代添加一天到Date对象。 (添加24 * 60 * 60 * 1000)

var ONE_DAY = 24 * 60 * 60 * 1000; 


var d = new Date(); 

for(i=0;i<30;i++) { 
    var curr_date = d.getDate(); 
    var curr_month = d.getMonth() + 1; 
    var curr_year = d.getFullYear(); 
    var formatedDate = curr_date + '/' + curr_month + '/' + curr_year; 
    d = new Date(d.getMilliseconds() + ONE_DAY); 
} 

我很可能会令稍有不同风格的选择,但是这是做的一个方式,涉及到你写的代码。

此外,我没有足够的声望发表评论,但pedrumj的另一个解决方案与我的非常相似,但请记住它实际上跳过了第一天(新日期应该在循环)

0

Demo here

使用此

var d = new Date(); 
var curr_month = d.getMonth(); 
for(i=0;i<30;i++){ 
var curr_date = d.getDate(); 
var curr_month = curr_month + 1; 
var curr_year = d.getFullYear(); 
var Printdate = curr_date + '/' + curr_month + '/' + curr_year; 
console.log(Printdate); 
} 
+0

它将有33/3/2015:D – 2015-03-03 06:10:02

0

您可以在每个循环1天减少日期字段如下:

var d = new Date(1425356823380); 

for(i = 0; i < 30; i++){ 
    var date = d.toLocaleDateString(); 
    // code 
    d.setDate(d.getDate()+1); 
} 

这里是一个fiddle

0

您的循环不会通过任何环。你应该先设置你的固定变量,然后循环你想要改变的变量。

for(i=0;i<30;i++){ 

} 

var d = new Date(); 
var curr_date = d.getDate(); 
var curr_month = d.getMonth() + 1; 
var curr_year = d.getFullYear(); 
var formatedDate = curr_date + '/' + curr_month + '/' + curr_year; 

像这样:

var d = new Date(); 
var curr_date = d.getDate(); 
var curr_month = d.getMonth(); 
var curr_year = d.getFullYear(); 
var curr_day = d.getDay(); 
var formatedDate = curr_month + '/' + curr_day + '/' + curr_year; 
for(i=0;i<30;i++){ 
    curr_day++; 
    formattedDate = curr_month + '/' + curr_day + '/' + curr_year; 
    console.log(formattedDate); 
} 

心灵,只有二月有29天最多。

查看Docs了解更多信息。或许你只是想用,可以处理所有的怪边缘的情况下,与日期碰巧库,如MomentJS

0
for(var i=0;i<30;i++){  
    var start = new Date(); 
    var next = new Date(); 
    next.setDate(start.getDate() + i); 
    var date_str=next.getDay()+"/"+next.getMonth()+"/"+next.getFullYear() 
    console.log(next); 
} 

可以格式化开始,下一个日期,按您的需要。

1
var d = new Date(); 
var curr_month = d.getMonth(); 
curr_month = curr_month + 1; 
var curr_date = d.getDate(); 

for(i = curr_date; i <= 31; i++){ 
    var curr_year = d.getFullYear(); 
    var date = curr_date + '/' + curr_month + '/' + curr_year; 
    curr_date++; 
    console.log(date); 
} 

试试这个。它对我有效。

demo link

+1

OP要显示从当前日期开始的未来30天的日期,而不是当前的剩余月份。 – LX7 2015-04-17 19:32:21