момент JS, как проверить, если время окончания после времени начала - PullRequest
0 голосов
/ 31 октября 2019

Я хочу проверить, является ли время окончания после времени запуска, используя следующий код. Но по какой-то причине он не работает.

const sTime = moment(startTimeValue,'HH:mm');
const eTime = moment(endTimeValue,'HH:mm');
let x = eTime.isBefore(sTime);

Я использую угловое усиление ngb-timepicker для времени начала и окончания. хочу проверить это.

starrTimeValue - это объект со значением: {час: 10, минута: 0, секунда: 0}

вот мой полный код для пользовательской проверки углового загрузчика ngb-время выбора:

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

Спасибо

...