尝试检查当前时间是否在开始和结束时间之间。
一切都是UTC,任何想法?
作品
shiftCurrentTime = moment.utc().format('hh:mm');
console.log(shiftCurrentTime);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.15.2/moment.min.js"></script>
不起作用
shiftStartTime = moment.utc('20:00').format('hh:mm'),
shiftEndTime = moment.utc('05:00').format('hh:mm'),
shiftCurrentTime = moment.utc().format('hh:mm');
console.log(shiftCurrentTime.isBetween(shiftStartTime, shiftEndTime));
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.15.2/moment.min.js"></script>
答案 0 :(得分:2)
您在时刻对象及其字符串表示(由format()
给出)
由于HH:mm
不是已知的parse格式,因此您必须将ISO 8601字符串转换为时间对象指定格式。
您可以在当前对象上调用isBetween
,而在格式化字符串上调用它会给您带来错误。
这是一个完整的工作示例:
var shiftStartTime = moment.utc('20:00', 'HH:mm'),
shiftEndTime = moment.utc('05:00', 'HH:mm'),
shiftCurrentTime = moment.utc();
console.log(shiftCurrentTime.isBetween(shiftStartTime, shiftEndTime));
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.15.2/moment.min.js"></script>