我遇到了一个关于时刻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;
请告知。
答案 0 :(得分:4)
上午12:15是在上午11:00之前,也许你可能意味着要在下午12:15使用
答案 1 :(得分:0)
您获得了正确的结果,因为12:15 AM
被解析为00:15
,因此startBreak
(11: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