代码之家  ›  专栏  ›  技术社区  ›  SpaceX

检查当前时间是否在可用时间内,NodeJS

  •  0
  • SpaceX  · 技术社区  · 9 年前

    我想知道当前时间(2017年7月17日星期一下午3:21)是否在可用时间内(这是一个JSON对象)

    以下可用时间可以理解为,周一的可用时间为上午7:00至上午10:00、下午1:00和下午5:00。 周六上午9:00至10:00,下午3:00至5:00等。

    我如何知道当前时间是否在可用范围内,我正在使用 moment.js

    var availabilityTimes = {   
        "Monday": {
            "times": [
                {
                    "startTime":"7:00 AM",
                    "endTime":"10:00 AM"
                },
                {
                    "startTime":"1:00 PM",
                    "endTime":"5:00 PM"
                }
            ],
            "weekday": "Monday",
            "available": true
        },
        "Saturday": {
            "times": [
                {
                    "startTime":"9:00 AM",
                    "endTime":"10:00 AM"
                },
                {
                    "startTime":"3:00 PM",
                    "endTime":"5:00 PM"
                }
            ],
            "weekday": "Saturday",
            "available": true
        },
        "Tuesday": {
            "times": [
                {
                    "startTime":"9:00 AM",
                    "endTime":"8:00 PM"
                }
            ],
            "weekday": "Tuesday",
            "available": true
        },
        "Sunday": {
            "times": [
                {
                    "startTime":"9:00 AM",
                    "endTime":"8:00 PM"
                }
            ],
            "weekday": "Sunday",
            "available": true
        },
        "Friday": {
            "times": [
                {
                    "startTime": "9:00 am",
                    "endTime": "6:00 pm"
                }
            ],
            "weekday": "Friday",
            "available": true
        },
        "Wednesday": {
            "times": [
                {
                    "startTime": "9:00 am",
                    "endTime": "6:00 pm"
                }
            ],
            "weekday": "Wednesday",
            "available": true
        },
        "Thursday": {
            "times": [
                {
                    "startTime": "9:00 am",
                    "endTime": "6:00 pm"
                }
            ],
            "weekday": "Thursday",
            "available": true
        }
    }
    
    1 回复  |  直到 9 年前
        1
  •  1
  •   Hatjhie    9 年前

    我相信这就是你想要的。

    var isValid = false;
    for(let key in availabilityTimes)
    {
        isValid = availabilityTimes[key].weekday === moment().format('dddd');    
        if(isValid)
        {
            if(availabilityTimes[key].times.length == 0)
            {
                isValid = false;
                continue;
            }
    
            for(let time in availabilityTimes[key].times)
            {
                let startTime = Date.parse("1900-01-01 " + time.startTime);
                let endTime = Date.parse("1900-01-01 " + time.endTime);
                let nowTime = Date.parse("1900-01-01 " + moment().format('HH:mm')); 
    
                isValid = nowTime >= startTime && nowTime <= endTime;
                if(isValid)
                {   
                    break;
                }
            }
    
            if(isValid)
            {
                break;
            }
        }
    }
    console.log(isValid);
    

    顺致敬意,

    推荐文章