javascript - 如果当前时间在使用 moment 的两个时间之间

标签 javascript momentjs

我正在尝试使用 momentjs 查找当前本地时间是否介于其他两个时间之间。

我有以下代码:

var currentTime = moment().format('YYYY-MM-DD HH:mm');

var prefix = 'YYYY-MM-DD ';
// the prefix is because moment expects a date prefix when parsing
var start_time = moment(prefix + '16:00').format('HH:mm');
var end_time = moment(prefix + '16:30').format('HH:mm');

if( moment(currentTime).isBetween(start_time,end_time) )
    alert('TRUE');
else
    alert('FALSE');

现在我们假设当前时间是16:10,它应该发出 TRUE 警报,但实际上却发出 FALSE 警报。

任何想法为什么这没有按预期工作。是不是格式不对?

最佳答案

如果您打算比较从时刻返回的日期,请不要设置它们的格式。

format() 返回一个字符串,而不是可比较日期/时间的对象。

var currentTime = moment();

var extra = moment().format('YYYY-MM-DD') + ' ';
var start_time = moment(extra + '16:00');
var end_time = moment(extra + '16:30');

if (moment(currentTime).isBetween(start_time, end_time))
  console.log('TRUE');
else
  console.log('FALSE');
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.10.6/moment.min.js"></script>

关于javascript - 如果当前时间在使用 moment 的两个时间之间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33240940/

相关文章:

javascript - Excel 文件通过 POST 下载 C#(避免 404.15 查询字符串错误)

javascript - 在javascript中输入一个正斜杠

javascript - 鼠标悬停时停止滑动并在鼠标移出时开始播放

javascript - 隐藏按钮时保留背景? (CSS/JavaScript)

javascript - Mongoose 按日期范围和时刻进行查询

javascript - Moment.js 错误地创建了一个新日期

javascript - 将 Three.js 场景保存到服务器的有效方法是什么?

javascript - 需要帮助在日语中格式化 MomentJS 中的日期

javascript - 如何使用moment js获取不同格式的日期

javascript - 如何用 Jest 来模拟模块的某些部分?