首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >创建两个日期之间的可用时隙数组

创建两个日期之间的可用时隙数组
EN

Stack Overflow用户
提问于 2015-08-08 02:25:00
回答 2查看 3.7K关注 0票数 0

我在前端的工作很弱,需要一点帮助。

我正在开发一个基本的形式,给用户可用于预订未来3天内的预约时间选项。

因此,到目前为止,我写道:

代码语言:javascript
运行
复制
    var today = new Date();

    var lastday = new Date(today);
    lastday.setDate(today.getDate() + 4);

    var daterange = getAllDays(today, lastday);

    function getAllDays(today, lastday)
    {
        var s = new Date(today);
        var e = new Date(lastday);
        var a = [];


        //this gets my start time days
        while (s < e)
        {

            //if day Saturday hours change
            if(s.getDay() == 0)
            {
                //if Sunday skip
            }
            else if (s.getDay() == 6)
            {
                //push start onto array
                a.push(setWorkingHours(s, '10'));

                //push end onto array
                a.push(setWorkingHours(s, '20'));
            }
            else
            {
                //push start onto array
                a.push(setWorkingHours(s, '13'));

                //push end onto array
                a.push(setWorkingHours(s, '20'));
            }


            s = new Date(s.setDate(s.getDate() + 1))

        }

        return a;

    };


    function setWorkingHours(date, hour)
    {
        var dateTime = new Date();
        dateTime.setDate(date.getDate());
        dateTime.setHours(hour, '0', '0');

        return dateTime;
    }


alert(daterange.join('\n'));

Here is a fiddle.

现在,我知道这可能需要改进,我对任何改进都持开放态度。

因此,上面的代码得到了一个带有开始和停止时间的天数组。现在,我正在努力弄清楚如何获得每天开始和停止时间内的小时数组。

此外,一旦我有了小时数,我就有一个对google日历的查询,它返回事件,所以我将把它解析成一个数组。

即将到来的活动: Bob Builder (2015-08-07T10:00:00-08:00) John Doe (2015-08-08T11:00:00-08:00) Mary Jane (2015-08-10T18:00:00-08:00)

最后,我需要将可用数组与预订的数组“相交”,并返回剩余的数组。

至于任命本身。如果一个人选择了一个时间,我就会安排两个小时的时间。约会可以从一小时的顶部或底部开始。

EN

Stack Overflow用户

发布于 2015-08-08 02:48:12

引用你的数组问题,创建一个数组的对象。导入动量。创建一个由start和end组成的两项数组。他们的date对象更完整,而且他们有很好的功能来检查。

代码语言:javascript
运行
复制
Calendar = { 
January-1: [[new Date(), new Date() ],  [new Date(),    new Date() ]] 
} 

对于第二部分来说,underscorejs是不错的。使用_.zip(数组,数组)。(您需要格式化google数组以匹配您的数组

我希望我没弄错,我是新来的。Wew84

票数 -1
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31884340

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档