Я получаю сообщение об ошибке при создании дат + 12/12/9999 с машинописью - PullRequest
0 голосов
/ 07 ноября 2018

Я получаю ошибку с машинописью при создании каких-либо дат, например ->

enter image description here

Пожалуйста, кто-нибудь отредактирует мой комментарий для просмотра моего img.

Вы можете увидеть в моем img, что даты + 12/12/9999 я получаю ошибку ... ¿¿почему ???

Код ->

   let format: boolean = true, valid: boolean;
    let day: number, mon: number, year: number;
    let date: Date;

    if (this.filterDateStart !== undefined) {
        if (this.filterDateStart.trim() !== "") {
            this.filterDateStart = this.filterDateStart.trim();
            let [d, m, y] = this.filterDateStart.split('/');

            if (!d || !m || !y) {
                format = false;
            }

            try {
                day = Number.parseInt(d);
                mon = Number.parseInt(m);
                year = Number.parseInt(y);
            } catch (error) {
                format = false;
            }

            if (d.length < 2 || m.length < 2 || y.length < 4) {
                format = false;
            }

            console.log("this.filterDateStart", this.filterDateStart);

            date = new Date(this.filterDateStart);

            console.log("date", date);

            valid = !isNaN(date.valueOf());

            console.log("valid", valid);

            if (valid) {
                console.log("valido inicio");
            } else {
                format = false;
                console.log("invalido inicio");
            }
        }
    }
    if (this.filterDateEnd !== undefined) {
        if (this.filterDateEnd.trim() !== "") {

            this.filterDateEnd = this.filterDateEnd.trim();
            let [d2, m2, y2] = this.filterDateEnd.split('/');

            if (!d2 || !m2 || !y2) {
                format = false;
            }

            try {
                day = Number.parseInt(d2);
                mon = Number.parseInt(m2);
                year = Number.parseInt(y2);
            } catch (error) {
                format = false;
            }

            if (d2.length < 2 || m2.length < 2 || y2.length < 4) {
                format = false;
            }

            console.log("this.filterDateEnd", this.filterDateEnd);

            date = new Date(this.filterDateEnd);

            console.log("date", date);

            valid = !isNaN(date.valueOf());

            console.log("valid", valid);

            if (valid) {
                console.log("valido filterDateEnd");
            } else {
                format = false;
                console.log("invalido filterDateEnd");
            }
        }
    }

    if (!format) {
        this.errorServer = true;
        this.message = "El formato de fecha/s no es correcto.";
    }

    if (format && this.filterDateEnd !== undefined && this.filterDateStart !== undefined) {
        let dateEnd = new Date(this.filterDateEnd);
        let dateStart = new Date(this.filterDateStart);

        if (dateStart > dateEnd) {
            format = false;
            this.errorServer = true;
            this.message = "La fecha de inicio no puede ser mayor que la fecha de fin.";
        }
    }
    return format;

}

Когда я создал даты 07/12/9999, новая Дата работает идеально. С помощью этого кода я проверяю данные моего пользователя, например:

дата: дд / мм / гггг дата действительна - >> 30/02/2018 ошибка или 30/03/201E -> ошибка ...

Спасибо.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...