使用momentJS(UTC)

时间:2016-10-31 13:32:54

标签: javascript jquery momentjs

尝试检查当前时间是否在开始和结束时间之间。

一切都是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>

1 个答案:

答案 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>