我想使用以下代码检查结束时间是否在开始时间之后。但是由于某些原因,它无法正常工作。
const sTime = moment(startTimeValue,'HH:mm');
const eTime = moment(endTimeValue,'HH:mm');
let x = eTime.isBefore(sTime);
我正在使用角度boostrapng ngb-timepicker作为开始时间和结束时间。要验证这一点。
starrTimeValue是一个具有以下值的对象:{小时:10,分钟:0,秒:0}
这是我用于对角度引导程序ngb-timepicker进行自定义验证的完整代码:
export function SessionTimesValidator(startTimeControlName: string, endTimeControlName: string): ValidatorFn {
return (formGroup: FormGroup): { [key: string]: any } | null => {
const startTimeControl = formGroup.get(startTimeControlName);
const endTimeControl = formGroup.get(endTimeControlName)
const startTimeValue = startTimeControl.value;
const endTimeValue = endTimeControl.value;
if (startTimeControl.pristine || endTimeControl.pristine) {
return null;
}
let validationResult = null;
console.log(moment());
const sTime = moment(startTimeValue,'HH:mm');
const eTime = moment(endTimeValue,'HH:mm');
let x = eTime.isBefore(sTime);
if(startTimeValue !== null && endTimeValue !== null &&
((startTimeValue.hour >= endTimeValue.hour) || (startTimeValue.minute >= endTimeValue.minute))) {
validationResult = {'sessiontimes': {value: 'Start Time must be before the End Time'}};
}
return validationResult;
};
}
谢谢