我正在尝试使用 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/