0

我有以下用于 datepicker 的 HTML 代码:

<mat-form-field class="input-form">
    <input matInput [matDatepicker]="picker" (click)="picker.open()" [formControl]="fieldIndividuEducation.control">
    <mat-datepicker-toggle matSuffix [for]="picker"></mat-datepicker-toggle>
    <mat-datepicker #picker></mat-datepicker>
    <mat-hint align="end">label</mat-hint>
</mat-form-field>

我需要获取日期,然后将其插入 PGSQL 数据库。我有以下代码来检索它:

if(element.type == 'date' && element.control.value !== null) {
    let month = element.control.value.getUTCMonth() + 1;
    let day = element.control.value.getUTCDate() + 1;
    let year = element.control.value.getUTCFullYear();
    value = year + '-' + month + '-' + day;
}

“+1”是因为默认选择的日期是选择前一天,我不知道为什么..但是如果我选择 2020 年 5 月 1 日,结果value是:2020-4-31

你有什么想法来检索正确的选定日期吗?

谢谢

4

1 回答 1

0

这是因为您获得的是 UTC 日期,而不是本地日期,这取决于您所在的位置,可能会以一天的差异来提供价值。如果您这样做element.control.value.getMonth(),您将根据当地时间获得月份。另外,请记住月份从 0 开始,所以一月是“0”,十二月是“11”

于 2020-05-11T16:02:55.393 回答