ROK*_*OKI 5 javascript momentjs
嗨,我想检查给定的日期是否在两个日期之间,当然还有几个小时。因此,如果我们检查 13:00 是否在 13:00 和 15:00 之间,我想得到正确的结果。
我有这个代码:
let timeSlotStartTime = moment.utc(timeSlot.startTime);
let startDayTime = moment.utc(timeSlotStartTime.format('YYYY-MM-DD') + "T" + moment.utc(condition.parameters.timeFrom).format('HH:mm:00'));
let endDayTime = moment.utc(timeSlotStartTime.format('YYYY-MM-DD') + "T" + moment.utc(condition.parameters.timeTo).format('HH:mm:59'));
return timeSlotStartTime.isBetween(startDayTime, endDayTime);
Run Code Online (Sandbox Code Playgroud)
所以我正在检查它是否介于两者之间,但它的工作原理很奇怪。
如果我设置 startDayTime = 14:59 和 endDayTime = 17:00 并且 timeSlotStartTime 是 14:15 它仍然给我真实的时间。(这是更大的问题)
如果 timeSlotStartTime = 17:00 给我假(我想给我真)
有没有可能我可以在 2 分钟内检查和相等?
谢谢
TKo*_*KoL 18
https://momentjscom.readthedocs.io/en/latest/moment/05-query/06-is-between/
您可以使用第四个参数来包含边
moment('2016-10-30').isBetween('2016-10-30', '2016-12-30', null, '()'); //false
moment('2016-10-30').isBetween('2016-10-30', '2016-12-30', null, '[)'); //true
moment('2016-10-30').isBetween('2016-01-01', '2016-10-30', null, '()'); //false
moment('2016-10-30').isBetween('2016-01-01', '2016-10-30', null, '(]'); //true
moment('2016-10-30').isBetween('2016-10-30', '2016-10-30', null, '[]'); //true
Run Code Online (Sandbox Code Playgroud)
方括号表示“包括这一端”,括号表示“排除这一端”
isBetween采用第三个参数(分钟、小时、天等)和第四个参数[]来包含包容性
您应该将第三个参数作为“分钟”传递,因为您正在比较分钟
var timeSlotStartTime = moment({ hour:14, minute:15 });
var startDayTime = moment({ hour:14, minute:59 });
var endDayTime = moment({ hour:17, minute:00 });
var result = timeSlotStartTime.isBetween(startDayTime, endDayTime, 'minutes', '[]');
console.log(result); // false
Run Code Online (Sandbox Code Playgroud)
isBetween比赛也是独一无二的。
moment('2010-10-20').isBetween('2010-01-01', '2012-01-01', 'year'); // false as it is exclusive
Run Code Online (Sandbox Code Playgroud)
2.13.0 版本引入了包容性。A[表示包含一个值。A(表示排除。如果使用包容性参数,则两个指标都必须通过。
moment('2016-10-30').isBetween('2016-10-30', '2016-12-30', null, '()'); //false
moment('2016-10-30').isBetween('2016-10-30', '2016-12-30', null, '[)'); //true
moment('2016-10-30').isBetween('2016-01-01', '2016-10-30', null, '()'); //false
moment('2016-10-30').isBetween('2016-01-01', '2016-10-30', null, '(]'); //true
moment('2016-10-30').isBetween('2016-10-30', '2016-10-30', null, '[]'); //true
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6439 次 |
| 最近记录: |