JavaScript - Moment.js - isBetween() 方法检查时间是否落在一个范围内
JavaScript - Moment.js - isBetween() method check if time falls in a range
我正在尝试查看 timeNow 是否介于时间范围打开和关闭之间:
var timeFormat2 = "HH:mm:ss";
var timeNow = "23:12:00"; //(11:12:00 pm)
var opening = "08:00:00"; //(08:00:00 am) morning time
var closing = "00:12:00"; //midnight time (i.e 12:12:00 am)
var isAvailable = moment(timeNow, timeFormat2).isBetween(moment(opening, timeFormat2), moment(closing, timeFormat2));
console.log("will show false >>>> ", isAvailable); //it shows 'false'
var closing1 = "23:45:00";
var isAvailable1 = moment("23:12:00", timeFormat2).isBetween(moment(opening, timeFormat2), moment(closing1, timeFormat2));
console.log("Should show true >>>> ", isAvailable1);
这是一个JSfiddle来检查它:
https://jsfiddle.net/1wuf0rzg/8/
你需要引入"第二天"的概念。在这里,我将日期设置为每月的第一天。如果收盘时间在开盘时间之前,那么我将收盘时间移到每月的第二天。
function isAvailable(opening, closing, now){
var openingTime = moment(opening, timeFormat2).date(1);
var closingTime = moment(closing, timeFormat2).date(1);
var nowTime = moment(now, timeFormat2).date(1);
if(closingTime.isBefore(openingTime)){
closingTime.date(2);
}
return nowTime.isBetween(openingTime, closingTime);
}
https://jsfiddle.net/1wuf0rzg/14/
没有足够的
数据进行计算。 00:12:00
表示在当前日期的开放时间前不到 8 小时 12 分钟。
正因为如此,23:12:00
将超出范围。
这将有助于使用不同类型的数据:
- 开放时间。
- 工作时间(金额)。
- 现在是时候了,
为了能够确定 - "现在时间"是否落在时间间隔内。
相关文章:
- 试图检查表单中的值是否为一个设定范围内的数字
- 如果指令包含在另一个指令中,我如何在隔离范围内添加双向数据绑定属性
- 如何使用webkit浏览器在一个范围内选择一个节点
- jquery或js:将站点范围内的链接替换为另一个AND,并更改为https
- 为什么允许通过原型继承访问另一个闭包范围内的私有变量
- 从全局范围内的另一个函数 - Javascript 调用函数构造函数的方法
- Javascript从另一个回调访问对象变量,而不将变量放在全局范围内
- Javascript:使用crypto.getRandomValues生成一个范围内的随机数
- 如何创建一个范围内随机数的简单分布图(java或javascript)
- 遍历循环,在一个范围内随机更改变量的值,但满足所有变量
- 使用moment.js、js或Jquery,在一个时间范围内打开一个功能
- 如何提醒所有动态id's在一个范围内
- 使用jQuery UI datepicker在一个范围内定制特定的禁用日期
- ES 6类:Access "this"在另一个范围内
- 动态地为ng-pattern创建一个正则表达式,仅用于范围内的数字
- 修改Meteor-React待办事项列表示例,显示一个时间范围内创建的列表项
- 我使用javascript的排序函数在角范围内的一个if条件.我的条件是假的,但它还是要进去
- 检查整数是否在其中一个范围内
- 在一个数值范围内进行动画
- 数据存储获取范围内的最后一个键