javascript - 在momentjs中检查时间是否在两个小时之间的最佳方法
问题描述
我想在我的应用程序中执行“夜间模式”之类的操作,我需要检查当前时间 fe 22:30 是否在“startNight”和“endNight”字段的范围内。
我正在尝试比较这些字段的总分钟数,如下所示:
function mode (nightStart, nightEnd) { //params disabled for example
const now = moment('01:00', 'HH:mm');
const nightStart = moment('22:00', 'HH:mm');
const nightEnd = moment('06:00', 'HH:mm');
return now.isBetween(nightStart, nightEnd);
}
它适用于例如范围'01:00' - '03:00' 并检查这些时间之间,但我想知道我是否将 nightStart 设置为 '22:00' 和 nightEnd 设置为 '06:00',因为它现在我说 01:00 不在 22:00 和 06:00 之间。
我想我必须处理午夜前后的时间,但也许还有另一种更简单的方法可以做到这一点。
非常感谢您的帮助。
解决方案
我认为你应该用日期初始化时刻对象
例如,
const now = moment()
const nightStart = moment("2019-02-22 01:00:00", "YYYY-MM-DD HH:mm:ss")
const nightEnd = moment("2019-02-22 13:00:00", "YYYY-MM-DD HH:mm:ss")
now.isBetween(nightStart, nightEnd) // returns true
推荐阅读
- reactjs - 使用带有 redux 表单的 react-select
- java - 使用 split 或 tokenizer 在花括号内获取字符串的方法
- autolayout - 一个 xib 有不同的纵向和横向布局?
- c - 关于使用 C 的二进制搜索算法的查询
- python - 函数在python 2.7中执行dictionary.get中的键是否存在
- linux - 如何在 shell 脚本中使用 ssh 在远程服务器上运行 sed(包括变量)
- c# - 以 JSON 格式返回异常消息
- php - 根据条件重新排序代码执行的最佳方法
- typescript - 将接口转换为打字稿中的元组
- php - 如何在 url 中使用 echo