2017-03-15 5 views
0
for(let i=0;i<=range;i++){ 
    console.log(`${d.getFullYear()}-${d.getMonth()}-${i}`); 
} 

私の範囲の値は5で、2017-2-1から2017-2-6までの結果を確認できます。しかし、2017-2-12から2017-2-17に印刷するには?私は3つの変数を持っています:startDate、endDate、range。私はちょうどループ部分のためにこれを台無しにする。そう開始日のループループの場合

答えて

0
for(let i=startdate;i<=startdate+range;i++){ 
    console.log(`${d.getFullYear()}-${d.getMonth()}-${i}`); 
} 

あなたはこれを行うための適切な方法は、実際の日付オブジェクトを変更することです

var startdate = 12; 
0

を設定します12〜17のために。何ヶ月かの間にロールオーバーすると、日付がずれてしまうことがあります。

const msInDay = 8.64e7, 
 
     pad = (s, p) => (p + s).substr(-p.length), 
 
     pad2 = s => pad(s, '00'), 
 
     formatDate = d => `${d.getFullYear()}-${pad2(d.getMonth()+1)}-${pad2(d.getDate())}`; 
 

 
var date = new Date(2017, 1, 12), 
 
    days = 5; 
 

 
let startTime = date.getTime(), 
 
    endTime = startTime + (msInDay * days) 
 

 
for (let time = startTime; time <= endTime; time += msInDay) { 
 
    date.setTime(time); 
 
    console.log(formatDate(date)); 
 
}
.as-console-wrapper { 
 
    top: 0; 
 
    max-height: 100% !important; 
 
}

+0

なぜあなたもSTARTTIMEする必要がありますか?私はその日が必要です。 1日はカレンダーの値から、ユーザーは日付を選択します。 –

+0

@GialaJefferson例えば28日から5日間カウントアップしてみてください。あなたの一日の方法は翌月にロールオーバーされません。 –

+0

カレンダーで「次の月」をクリックしても問題ありません。 –

関連する問題