2017-04-27 11 views
1

ドロップダウンリストで「過去24時間」を選択すると、1つのドロップダウン(値は「過去24時間」、「過去48時間」など) 私は今から1時間間隔で昨日までのすべての日付が必要です。JavaScriptのループの日時を24時間取得する

私は私の予想出力は、例えば、現在の日付と時刻は、2014年4月27日13時07分の手段、2014から04のような

出力され、

ある

var todayDate = new Date(); 
    if(type=="hours"){ // for hours based drop-down 
     var oneDayAgo = new Date(todayDate.getTime()); 
     oneDayAgo.setDate(todayDate.getDate() - 1); 
     console.log("oneDayAgo"+oneDayAgo); 
     var hours = todayDate.getHours(); 
     for(var i = hours; i <= hours+24; i++) { 
      if(i<25){ 
       var newHours=i; 
       var newDates=todayDate.getFullYear() + "-" + ("00" + (todayDate.getMonth() + 1)).slice(-2) + "-" + ("00" + todayDate.getDate()).slice(-2) + " " + ("00" +newHours).slice(-2) + ":" + ("00" + todayDate.getMinutes()).slice(-2) + ":" + ("00" + todayDate.getSeconds()).slice(-2); 
       console.log(newDates); 
      }else{ 
       var newHours=i-24; 
       var newDates=oneDayAgo.getFullYear() + "-" + ("00" + (oneDayAgo.getMonth() + 1)).slice(-2) + "-" + ("00" + oneDayAgo.getDate()).slice(-2) + " " + ("00" +newHours).slice(-2) + ":" + ("00" + oneDayAgo.getMinutes()).slice(-2) + ":" + ("00" + oneDayAgo.getSeconds()).slice(-2); 
       console.log(newDates); 
      } 
     } 
    } 

、これを試してみました-27 13:07、2014-04-27 12:07、2014-04-27 11:07、2014-04-27 10:07 .... 2014-04-26 13:07

助けてくださいこれに。ありがとう

+0

ループ内の変数を作成しないでください。それらを前に作成し、内部で使用します。 – franckstifler

答えて

0

function getDateItems(hours) { 
 
    var toDate = new Date(); 
 
    var fromDate = new Date(); 
 
    fromDate.setTime(fromDate.getTime() - (hours * 60 * 60 * 1000)); 
 
    var result = []; 
 
    
 
    while (toDate >= fromDate) { 
 
    result.push(toDate.getFullYear() + "-" + ("00" + (toDate.getMonth() + 1)).slice(-2) + "-" + ("00" + toDate.getDate()).slice(-2) + " " + ("00" + toDate.getHours()).slice(-2) + ":" + ("00" + toDate.getMinutes()).slice(-2) + ":" + ("00" + toDate.getSeconds()).slice(-2)); 
 
    // consider using moment.js library to format date 
 
    
 
    toDate.setTime(toDate.getTime() - (1 * 60 * 60 * 1000)); 
 
    } 
 

 
    return result; 
 
} 
 

 
var datesFrom24Hours = getDateItems(24); 
 
var datesFrom48Hours = getDateItems(48); 
 

 
console.log(datesFrom24Hours);

+0

ありがとう..期待通りの働き – user3265033

0

ここでは、これはあなたが望むかもしれません。

//get type and hoursOption from dropdowns 
var type = 'hours' 
var hoursOption = 48; 

var todayDate = new Date(); 

if(type=="hours"){ // for hours based drop-down 

    var hours = todayDate.getHours(); 
    for(var i = hours; i <= hours + hoursOption; i++) { 
      todayDate.setHours(todayDate.getHours() - 1) 
     var newDates = todayDate.getFullYear() + "-" + ("00" + (todayDate.getMonth() + 1)).slice(-2) + "-" + ("00" + todayDate.getDate()).slice(-2) + " " + ("00" + todayDate.getHours()).slice(-2) + ":" + ("00" + todayDate.getMinutes()).slice(-2) + ":" + ("00" + todayDate.getSeconds()).slice(-2); 
      console.log(newDates); 

    } 
} 

変数hoursfor-loopのために私は、例えば、ドロップダウンオプションから来hourOptionを追加しました。 24時間、48時間、72時間など。

ループの内部では、todayDateを1時間足らずで追加するので、後方に数えてカウントされます。

関連する問題