【问题标题】:Angular datepicker payload value differs from console logAngular datepicker 有效负载值与控制台日志不同
【发布时间】:2022-11-30 04:51:49
【问题描述】:

在我的应用程序(使用 Angular 7.1.4 + Angular Material 制作)中,我有一个带有日期选择器字段的表单。我正在控制台记录选择的日期并且记录的结果是正确的。但是,当我查看网络中的有效负载时,发送到我的数据库的日期晚了一天......如何以及为什么?我该如何解决?问题出在语言环境中吗?我必须制作自定义日期格式吗?

这是我的代码: 编辑报价.component.html:

<form class="example-form" [formGroup]="expirationForm" (ngSubmit)="onUpdatePonudba(offer.id)">
                        <mat-form-field class="form-control">
                            <input matInput [matDatepicker]="picker1" placeholder="Datum zapadlosti" formControlName="datumZapadlosti">
                            <mat-datepicker-toggle matSuffix [for]="picker1"></mat-datepicker-toggle>
                            <mat-datepicker #picker1></mat-datepicker>
                        </mat-form-field>
                        <br/>
                        <button type="submit" mat-raised-button color="primary" class="btn-primary">SHRANI</button>
                    </form>

编辑offer.component.ts:

onUpdatePonudba(offerID) {

    const validDate = this.expirationForm.controls['datumZapadlosti'].value;
    console.log(offerID);
    console.log(validDate);

    this.httpClient.post(`${environment.apiUrl}offers/valid-date`, {
        offer_id: offerID,
        valid_date: validDate
    }).subscribe(
        data => {

        },
        error => {
            console.log("Error", error);
        }
    );
}

【问题讨论】:

    标签: angular typescript angular-material datepicker


    【解决方案1】:

    我最近遇到了类似的问题。根据时刻文档,当时刻对象转换为 JSON 时,它被调整为 UTC。根据您在其中运行应用程序的时区,这可能会导致您发送到服务器的日期代表前一天。

    为了解决这个问题,我使用 moment.format('YYYY-MM-DDTHH:mm:ss') 将对象转换为 ISO8601 字符串。然后将它传递给我的 POST 请求。另一种选择可能是更新服务器以能够正确处理 UTC,但对我来说现在不是一个选择。

    在您的代码中,您可以添加如下内容:

    {
        offer_id: offerID,
        valid_date: validDate.format('YYYY-MM-DDTHH:mm:ss')
    }
    

    如果不需要时间部分,可以省略“THH:mm:ss”。

    【讨论】:

    • 我对这一切真的很陌生,你能帮我提供一个代码示例来说明如何做到这一点吗?我是否必须制作定制管道或其他东西?
    • 我在我的答案中添加了一个编辑。
    猜你喜欢
    • 1970-01-01
    • 2021-04-17
    • 1970-01-01
    • 2018-01-26
    • 2016-12-25
    • 1970-01-01
    • 2020-02-25
    • 2015-06-15
    • 1970-01-01
    相关资源
    最近更新 更多