我进行了很多搜索,找到了一些示例,但没有一个没有按预期工作。我正在尝试创建特定日期的可用时段,并希望显示如下时间:
10.00 |可用
11.00 |可用
12-00 |可用
13.00 |可用
等等
例如,现在开始时间为 16:00(我所在时区的当前时间 UTC+02:00),其余时间应禁用。那么明天又从 00:00 开始。我应该如何使其发挥作用?
我现在拥有的是:
var arr = [], i, j;
for(i=0; i<24; i++) {
for(j=0; j<1; j++) {
arr.push(i + ":" + ("00") );
}
}
var d = new Date(),
h = d.getHours(),
m = 15 * Math.floor(d.getMinutes() / 15),
stamp = h + ":" + (m === 0 ? "00" : m);
var pos = arr.indexOf(stamp),
timelist = arr.slice(pos).concat(arr.slice(0, pos));
console.log(arr);
这给了我这个
["0:00", "1:00", "2:00", "3:00", "4:00", "5:00", "6:00", "7:00", "8:00", "9:00", "10:00", "11:00", "12:00", "13:00", "14:00", "15:00", "16:00", "17:00", "18:00", "19:00", "20:00", "21:00", "22:00", "23:00"]
编辑
我想我不会创建一个新问题,而是会详细阐述这一点。 是否可以像这样显示时间段:
10.00 - 11.00 |可用
12.00 - 13.00 |可用
13-00 - 14.00 |可用
15.00 - 16.00 |可用
最佳答案
为什么要剪切数组,而是获取实际的小时并更改 for 循环:
var date = new Date;
var hour = date.getHours();
var arr = [];
for(var i=hour; i<24; i++) {
arr.push(i + ":00") );
}
console.log(arr);
如果您还想显示过去的时间,为什么不制作两个数组:
var date = new Date;
var hour = date.getHours();
var pastHours = [],
futureHours = [];
for( var i=0; i<hour; i++ ) {
pastHours.push(i+":00");
}
for(var i=hour; i<24; i++) {
futureHours.push(i + ":" + ("00") );
}
console.log(pastHours);
console.log(futureHours);
或者在一个数组中:
var arr = [];
for( var i=0; i<24; i++ ) {
arr.push(i+":00");
}
var date = new Date,
hour = date.getHours(),
hourIndex = arr.indexOf(hour+":00");
var pastHours = arr.slice(0,hourIndex);
var futureHours = arr.slice(hourIndex);
console.log(pastHours);
console.log(futureHours);
关于javascript - 如何在 jquery 中创建间隔一小时的时间数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39748331/