假设我们有两次:



所以我的问题是如何生成具有以下时间的数组:



我需要这个来进行预订,所以可以说该公司将于7:30开放,您可以进行的每次预订都将是30分钟(此时间可以更改,可能是一小时或更长时间)

在JS中生成这样的东西的最佳方法是什么?

最佳答案

就像代码中的注释所表明的那样,如果不需要,您可以在小时前删除0,方法是删除该行。

如果您不希望数组的末尾,只需在for循环中用<=替换<

function timeArray(start, end){
    var start = start.split(":");
    var end = end.split(":");

    start = parseInt(start[0]) * 60 + parseInt(start[1]);
    end = parseInt(end[0]) * 60 + parseInt(end[1]);

    var result = [];

    for ( time = start; time <= end; time+=30){
        result.push( timeString(time));
    }

    return result;
}

function timeString(time){
    var hours = Math.floor(time / 60);
    var minutes = time % 60;

    if (hours < 10) hours = "0" + hours; //optional
    if (minutes < 10) minutes = "0" + minutes;

    return hours + ":" + minutes;
}

console.log(timeArray("7:30", "12:00"));

关于javascript - JS/TypeScript生成小时之间的时间,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/45400029/

10-10 11:58
查看更多