Moment JS在返回错误结果之前

时间:2018-01-08 03:34:13

标签: javascript momentjs

我遇到了一个关于时刻js库的问题。函数isBefore有时会返回错误的结果。下面的代码应该返回true,而不是false值。



var clockIn = moment('1/5/2018 12:15 AM');
var startBreak = moment('1/5/2018 11:00 AM');

if(startBreak.isBefore(clockIn)){
  console.log('isBefore');
}else{
  console.log('isAfter');
}

<script src="https://momentjs.com/downloads/moment.js"></script>
&#13;
&#13;
&#13;

请告知。

2 个答案:

答案 0 :(得分:4)

上午12:15是在上午11:00之前,也许你可能意味着要在下午12:15使用

答案 1 :(得分:0)

您获得了正确的结果,因为12:15 AM被解析为00:15,因此startBreak11:00 {{1 (clockIn)。

无论如何,由于您的输入不是ISO 8601认可的格式,因此在RFC 2822格式中,您都必须使用moment(String, String)

00:15代表一个月中的某一天,D代表月份编号,M代表4位数年份,YYYY代表hh小时,{ {1}}代表会议记录,1..12代表mm / A

您当前的代码会抛出弃用警告,并且控制台中的消息指向JS Date Construction指南。

这是一个实时样本:

AM
PM