javascript - 使用打字稿创建日期 + 07/12/9999 时出现错误
问题描述
我在创建任何日期时遇到打字稿错误,例如 ->
请任何人编辑我的评论以查看我的img。
您可以在我的 img 中看到,日期 + 07/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 时,新日期运行完美。使用此代码,我检查了用户的数据,例如:
日期:dd/mm/yyyy 日期有效 ->> 30/02/2018 错误或 30/03/201E -> 错误...
谢谢。
解决方案
推荐阅读
- excel - Remove the commas, spaces and "NULL" string to 0(Zero) from Column
- c++ - 如果条件为 TRUE,则在 do while 循环中发布增量(最佳方式?)
- node.js - Express Generator 忽略端口设置
- android - Android 签名,无法导出 Android Studio 中生成的密钥的上传证书,“密钥库被篡改,或密码不正确”
- c - 为什么我的 Makefile 在 Mac 上找不到 OpenSSL?
- r - 计算R中两条密度曲线的交点
- ios - 编辑 TextField 时滚动 UITableView
- ios - Cordova IOS 应用商店拒绝(应用不使用原生功能)
- javascript - 如何将文件从 Django 后端发送到服务器
- php - 使用 PHP 读取 HTML5 表单时,$_POST 不会读取输入。$_REQUEST 工作一次然后停止