我们如何根据用户在 angular 中输入的一天的开始时间和结束时间来计算周期时间?

How do we calculate the period times based on user's input of start-time and end-time for the day in angular?

我正在为学校管理制定一个时间表项目。我想通过我正在使用模态对话框的学校管理员获取当天的开始时间和结束时间。 上图仅包含 9 个不同时间段的静态时间段,时间间隔相等。 以上是我用来为时间表期间持续时间中的每个因素获取所需时间的模式。

假设一天有 9 个时段,我希望根据用户一天中的开始和结束时间以及用户的时段持续时间将时间细分为 9 个时段。

我没有尝试过任何代码,因为我不清楚我将如何做到这一点。不过我添加了一些屏幕截图。

周期需要根据用户的周期持续时间来计算,当一天分配了 9 个周期时,应该会自动细分为 9 个不同的时间段。

使用下面给定的代码将给定的时间范围分成 9 等份:

    let arr = [];
    let dt1 = new Date().setHours(9, 45, 0); // this would be given by user as input
    let dt2 = new Date().setHours(16, 30, 0);// this would be given by user as input
    const interval = (dt2-dt1)/9;
    for (let i=0; i<9; i++) {
        const period = {
            start: new Date(dt1+(i*interval)),
            end: new Date(dt1+((i+1)*interval))
        }
        arr.push(period);
     }

你可以遍历数组并获取每个槽的开始结束时间:

arr.forEach((slot, index) => {
    // index 0 will be first slot and last index will be last one
    console.log(`Slot start: ${slot.start}`);
    console.log(`Slot end: ${slot.end}`);
})