gpt4 book ai didi

Javascript moment js 根据从当前时间到前一个午夜的小时数分割时间

转载 作者:行者123 更新时间:2023-12-03 01:20:55 24 4
gpt4 key购买 nike

我期待得到的是从当前时间到昨天中午的时间间隔一小时

原来如此

例如:如果现在是 03:34

所以我想得到这个

var durations = [
{from:03:00, to:03:34},
{from:02:00, to:03:00},
{from:01:00, to:02:00},
{from:00:00, to:01:00}
]

从上面的示例中,03:34 的值是当前时间

到目前为止,我已经能够通过

获得第一段
{from:moment().startOf('hour'), to:moment()}

现在我不知道如何分割其他持续时间,每个持续时间相差 1 小时

所以它就像

let hours_from_midnight = moment.duration(end.diff(moment().startOf('day'))).asHours();

但是现在我如何继续使用从午夜开始的小时数来分割下一个持续时间并达到所需的持续时间

最佳答案

您需要做的是不断减去一个小时并克隆日期,因为所有方法都会改变现有对象:

function periods(initialTime) {
// our lower bound
const midnight = initialTime.clone().startOf("day");
// our current period start
const periodStart = initialTime.clone().startOf("hour");

const periods = [];

if (!(periodStart.isSame(initialTime))) {
// only add the last period if it isn't empty
periods.push({ start: periodStart.clone(), end: initialTime });
}

while (periodStart.isAfter(midnight)) {
// the last start is our new end
const to = periodStart.clone();
// our new start is one hour earlier
const from = periodStart.subtract(1, "hour").clone();

periods.push({
from,
to
});
}

return periods;
}

console.log(periods(moment("03:34", "HH:mm")));
console.log(periods(moment("18:00", "HH:mm")));

关于Javascript moment js 根据从当前时间到前一个午夜的小时数分割时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51768410/

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