gpt4 book ai didi

javascript - 如何在 javascript 中创建包含小时和分钟的数组?

转载 作者:行者123 更新时间:2023-11-30 07:38:08 24 4
gpt4 key购买 nike

我正在尝试创建一个时间数组,例如:

1:00
1:15
1:30
1:45
2:00
2:15
...

这是我的代码,它的作用是从当前时间开始计时:

var timeArray = [];
var d = new Date();
var h = d.getHours();
var m = d.getMinutes();

for (var i = h; i <= 24; i++) {
for (var j = m; j <= 59; j++) {
if (j % 15 === 0) {
j = j === 0 ? '00' : j;
if (i >= 12) {
timeArray.push((i - 12) + ':' + j + ' PM');
} else {
timeArray.push(i + ':' + j + ' AM');
}
}
}
}

问题是 m 超过了 46,比如 var m = 50;,然后数组变空了,因为 j % 15 不再得到 0。

如何解决这个问题?

谢谢

最佳答案

如果您想要的是一个数组 ["1:00", "1:15", ...] 那么为什么不直接构建它呢?它与“小时”和“分钟”无关,只与“获得一些明显的顺序数字”有关:

cost arr = [];
for (let i=0; i < 24; i++) {
for (let j=0; j < 4; j++) {
arr.push(`${i}:${j === 0 ? `00` : 15*j}`);
}
}

完成。查找离 15 分钟最近的当前时间:

const d = new Date(),
h = d.getHours(),
m = 15 * Math.floor(d.getMinutes() / 15),
stamp = `${h}:${m === 0 ? `00` : m}`;

只需重新排序时间段:

const pos = arr.indexOf(stamp);
let timelist = [];
if (pos > -1) {
timelist = [
...arr.slice(pos),
...arr.slice(0,pos)
];
}

关于javascript - 如何在 javascript 中创建包含小时和分钟的数组?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25828303/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com