用Moment JS比较两次

Kyl*_*uir 36 javascript momentjs

我有一个问题需要我以12小时的格式进行两次比较并且比较它们,我们的项目中包含了moment.js,我们最初认为它会像这样微不足道:

var beginningTime = moment('8:45am');
var endTime = moment('9:00am');
console.log(beginningTime.isBefore(endTime)); //false???
Run Code Online (Sandbox Code Playgroud)

小提琴: http ://jsfiddle.net/KyleMuir/M4R4z/

我们缺少什么?感觉这应该不是一个难以解决的难题.当我们对我们执行任何时刻的功能beginningTimeendTime它只是说NAN

Ant*_*Chu 71

如果您总是处理h:mma格式化时间,可以在解析时指定它...

var beginningTime = moment('8:45am', 'h:mma');
var endTime = moment('9:00am', 'h:mma');
console.log(beginningTime.isBefore(endTime)); // true
console.log(beginningTime.toDate()); // Mon May 12 2014 08:45:00
console.log(endTime.toDate()); // Mon May 12 2014 09:00:00
Run Code Online (Sandbox Code Playgroud)
<script src="https://cdn.jsdelivr.net/momentjs/2.13.0/moment.min.js"></script>
Run Code Online (Sandbox Code Playgroud)

它将使用今天作为日期,因此如果你跨越不同的日子它将无法工作.

的jsfiddle


Mud*_*Ali 8

根据文档,您声明的矩变量不正确地检查允许的甲酸盐

http://momentjs.com/docs/#/parsing/string/

你可以使用它代替

var beginningTime = moment({
  h: 8,
  s: 45
});
var endTime = moment({
  h: 9,
  s: 0
});
console.log(beginningTime.isBefore(endTime)); //true
Run Code Online (Sandbox Code Playgroud)
<script src="https://cdn.jsdelivr.net/momentjs/2.13.0/moment.min.js"></script>
Run Code Online (Sandbox Code Playgroud)