javascript - 如何在 Javascript 中检查所选时间是否在给定时间范围内

标签 javascript angularjs exchangewebservices

我需要确定用户选择的时间(开始时间、结束时间)是否在预约时间数组中。

我从交换网络服务获取预约时间,输出为:

[{Status: "Busy", StartTime: "2016-10-05T11:00:00+10:00", EndTime: "2016-10-05T11:30:00+10:00"},{Status: "Busy", StartTime: "2016-10-05T13:00:00+10:00", EndTime: "2016-10-05T15:30:00+10:00"}]

用户选择的时间是:

var start_time = Date.parse("2016-10-05T14:30");
var end_time = Date.parse("2016-10-05T15:00");

到目前为止,我已经尝试了以下方法,但我不确定这是否是正确的方法:

var data = [{Status: "Busy", StartTime: "2016-10-05T11:00:00+10:00", EndTime: "2016-10-05T11:30:00+10:00"},{Status: "Busy", StartTime: "2016-10-05T13:00:00+10:00", EndTime: "2016-10-05T15:30:00+10:00"}];

for (var key in data)
{
  var obj = data[key];
  if (obj['Status'] == 'Busy')
  {
    check_open_time_val = Date.parse(obj['StartTime']);
    check_close_time_val = Date.parse(obj['EndTime']);

     if (check_open_time_val > open_time)
     {
        console.log('Is Busy');
        // break;
        return true;
      }
   }else {
      console.log(obj['Status'] + 'XXXXX');
   }
  }

如何检查开始时间和结束时间是否不在任何预约时间中。 谢谢

最佳答案

您可以组合this logicArray.prototype.some

let data = [{Status: "Busy", StartTime: "2016-10-05T11:00:00+10:00", EndTime: "2016-10-05T11:30:00+10:00"},{Status: "Busy", StartTime: "2016-10-05T13:00:00+10:00", EndTime: "2016-10-05T15:30:00+10:00"}],
    start_time = Date.parse("2016-10-05T14:30:00+10:00"),
    end_time = Date.parse("2016-10-05T15:00:00+10:00");

let isClash = data.some(obj => {
    let s = Date.parse(obj.StartTime), e = Date.parse(obj.EndTime);

    return obj.Status === 'Busy' && start_time <= e && end_time >= s;
});

console.log('is clash?', isClash);

请注意,我对齐了 start_timeend_time 的 UTC 偏移量,以便您可以看到它的工作原理:)

关于javascript - 如何在 Javascript 中检查所选时间是否在给定时间范围内,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39866650/

相关文章:

javascript - 无法在 onclick 事件上删除随机数组元素

javascript比较两个数组找出不同之处

c# - 使用 EWS 和 Exchange 2007 通过 session 实现 Outlook 2010 的组

java - 使用 EWS Java API 检索预约的账单信息

javascript - 单击按钮后用另一个 div 替换时,.replaceWith() 不起作用

javascript - 简单网站的 Grunt + require.js 配置

javascript - 通过 $sceDelegate 提供程序打开重定向预防

c# - 如何在 WebAPI 中发布带有附加文件的对象?

java - Exchange Web 服务 Java API + RESTful 推送通知监听器

javascript - onRowClicked 用于 react 数据表