[英]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.