javascript - 检查两次之间的时间间隔

标签 javascript datetime time

我需要检查两个时间段之间的时间间隔。即需要在客户端阻止某人的约会。

我有2个数组

var fromTimings=["8:00","12:00","","16:00"];
var toTimings=["9:10","01:00","","19:00"];

这些是已经预订的区 block 。即第一个预约时间为 8:00 至 9:10,第二个预约时间为 12:00 至 1:00,依此类推。

所有约会都按上述格式存储在两个数组中。

现在我需要检查用户定义的插槽。

即,如果用户输入像 fromTime = 9:15 和 10:00 则必须返回/显示可用

逻辑如下

fromTime    |   toTime     |   result
------------+--------------+-----------
7:00        |   7:59       |   true
8:10        |   10:00      |   false ( already meeting between 8:00 to 9:10)
19:01       |   23:59      |   true

有人可以帮忙吗?

提前致谢

最佳答案

在下面的代码中,为了便于比较,将 hh:mm 格式的时间转换为分钟

//just for logging the messages
var log = (function() {
  var $log = $('#log');
  return function(msg) {
    $('<p/>', {
      text: msg
    }).appendTo($log)
  }
})();


var fromTimings = ["8:00", "12:00", "", "16:00"];
var toTimings = ["9:10", "01:00", "", "19:00"];

function test(from, to) {
  var f = toMins(from),
    t = toMins(to),
    ft, tt;
  for (var i = 0; i < fromTimings.length; i++) {
    ft = toMins(fromTimings[i]), tt = toMins(toTimings[i]);
    if ((f >= ft && f <= tt) || (t >= ft && t <= tt)) {
      return false;
    }
  }
  return true;
}

function toMins(time) {
  var parts = time.split(':');
  return (+parts[0] * 60 + +parts[1]) || 0;
}

function testTime(from, to) {
  log(from + '-' + to + ': ' + test(from, to))
}

testTime('07:00', '07:59');
testTime('8:10', '10:00');
testTime('19:01', '23:59');
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<div id="log"></div>

关于javascript - 检查两次之间的时间间隔,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26112366/

相关文章:

javascript - 如何循环遍历数组内的多个数组并从中过滤值-Javascript

javascript - Highcharts、Rails - 设置图表起点的方法?

php - 将 1 小时添加到时间变量

iPhone - 获取给定地点/时区的当前日期和时间并将其与同一地点的另一个日期/时间进行比较的正确方法

php - 将时间传输到 mySQL 数据库(定义为 "Thu, 14 Apr 2011 22:44:33 +0000")给我语法错误

javascript - 在 Ajax 表单中设置 Google Analytics 事件

sql-server-2008 - SQL Server 2008 SYSDATETIME 返回错误的日期

linux - 有没有办法在特定时间自动提交 git 中的更改

c++ - 测量 C++ OpenMP 代码中的执行时间

javascript - 如何在 jquery/javascript 中的键/值数组中的特定点插入键值对?