瞬间js如何检查结束时间是否在开始时间之后

时间:2019-10-31 11:26:35

标签: angular momentjs angular-bootstrap

我想使用以下代码检查结束时间是否在开始时间之后。但是由于某些原因,它无法正常工作。

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;
    };
}

谢谢

0 个答案:

没有答案