angular - 即使日期相等,日期比较也会返回错误
问题描述
我有一个 datepicker 需要获取日期“12/31/9999”,即使 maxDate 设置为今天。
我有它这样输入。但是,当我在代码中运行比较时,它返回 false。
private CheckDate(form: FormGroup, group: any) {
if (form.controls["date"].value == new Date("12/31/9999")) {
//form.controls["date"].valid = true;
(group.questions["date"] as DateTimePickerQuestion).maxDate = null;
}
}
但是,当我将 form.controls["date"].value 与 new Date("12/31/9999") 进行比较时,它会返回 false 并且不会在中间执行我的代码。
这是为什么?这是检查值的即时窗口的复制/粘贴
new Date("12/31/9999")
Fri Dec 31 9999 00:00:00 GMT-0500 (Eastern Standard Time) {}
form.controls["date"].value
Fri Dec 31 9999 00:00:00 GMT-0500 (Eastern Standard Time) {}
form.controls["date"].value == new Date("12/31/9999")
false
解决方案
我同意邪猴的建议。您似乎正在尝试比较两个不同的事物。尝试将两个值都转换为字符串或日期,然后从那里开始。在比较日期格式之前,我通常做的是使用 datePipe (因为有时格式也不同,如日期格式 - 例如:
2020 年 1 月 10 日 - 10 月 1 日
2020 年 1 月 10 日 - 1 月 10 日
因此,请确保您正在比较相同类型的对象和相同类型的日期格式!:)
推荐阅读
- java - 回文递归算法的时间复杂度
- python - 为什么我的 Numpy 掩码不适用于 OpenCV bitwiseAnd()?
- python - 如果列下该行中的任何单元格不是浮点数,如何删除数据框中的行?
- python - Flask 网页 - 需要显示用户列表并允许管理员选择多个条目
- sql - 使用 XML 数据对列进行 MSSQL 混淆
- laravel - 如何在 Laravel 中通过“ids”获取和分享不同网页的帖子?
- html - 无法获取褪色的浮动ui对话框;不显示在闪亮
- spring - 连接到 WebSocket 时 WebSocketClient 冻结(Spring WebFlux)
- kubernetes - 在工作节点(或)由于内存使用而挂起的节点中停止 Kubelet 服务使 MYSQL 无法在 Kubernetes 工作节点中正确终止
- spring - Spring Boot 找不到在外部目录中声明的属性文件