簡體   English   中英

在 javascript 中獲取循環的 24 小時日期和時間

[英]get 24 hours date and time for loop in javascript

我有一個下拉列表(值是“過去 24 小時”、“過去 48 小時”等),當我在下拉列表中輸入 select“過去 24 小時”時,我需要從現在到昨天的所有日期,間隔為一小時。

我試過了,

   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);
            }
        }
    }

我預期的 output 是,

例如當前日期和時間是 2014-04-27 13:07 意味着,

output 喜歡 2014-04-27 13:07, 2014-04-27 12:07, 2014-04-27 11:07, 2014-04-27 10:07.... 2014-04-26 13:07

請幫忙解決這個問題。 謝謝

這是一個工作樣本 ,可能是你想要的。

//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);

    }
}

對於for-loop變量hours我添加了來自下拉選項的hourOption ,例如。 24,48,72等

在內部循環中你需要todayDate ,然后再減少一個小時,所以它將顯示向后計數的小時數。

 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); 

這對我有用

const start = new Date("2022-01-01T00:00:00");
    const end = new Date("2022-01-01T23:00:00");
    
    for (let current = start; current <= end; current.setHours(current.getHours() + 1)) {
        console.log(current);
    }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM