【发布时间】:2022-02-10 05:52:00
【问题描述】:
我有这个功能来选择可以正常工作的日期
formatDateField(event: Date, formControl: string) {
this.form
.get(formControl)
.patchValue(
this.datePipe.transform(event.getTime(), "yyyy-MM-dd'T'HH:mm:ss")
);
}
我使用下面的代码添加了一个按钮来添加日期,但在开发人员工具>控制台中显示未定义:
addDaysToDateForm(formName: string, days: number) {
let formDate: Date = this.form.get(formName).value || new Date();
formDate.setDate(formDate.getDate() + days);
this.form.get(formName).setValue(formDate);
}
setTodayForm(formName: string) {
this.form.get(formName).setValue(new Date());
}
知道有什么问题吗?
【问题讨论】:
-
我建议使用像
luxon这样的库。 -
this.form.get(formName).value返回什么?它真的返回Date对象吗?您的代码似乎假设它确实如此,但与 DOM 表单相关的value是一个字符串。当然,这可能是一些库,但是... -
从根本上说,如果
formDate真的是一个Date对象并且days真的是一个数字,那么formDate.setDate(formDate.getDate() + days)将 将days天添加到日期.因此,如果您没有看到这一点,那么这两件事之一是不正确的(formDate不是Date,或days不是数字)。 -
我认为
this.form.get(formName).value返回一个string而不是Date对象,所以@T.J.Crowder 说的是真的。 -
谢谢@T.J.Crowder formDate 是一个 Date 对象。 formName 是一个字符串。如何在这段代码中使用 this.form.get(formName).value ... 将字符串转换为日期?
标签: javascript angular typescript date datepicker