3

我是 Angular 的新手,我对序列化添加到 POST 请求的对象的 Date 属性的最佳方法有几个疑问。给定样本类

export class MyClass{
    public dateProperty: Date;
}

我在服务中有以下代码:

public addMyClass(myClass: MyClass): Observable<MyClass> {
    return this.http.post<MyClass>(this.apiBaseUrl, myClass);
}

我必须按以下格式序列化 Date 'yyyy-MM-dd hh:mm'。我考虑了不同的方法,比如定义装饰器(如果可能的话)或覆盖toJson()方法,但我不知道这些是唯一的选择还是有更好的解决方案......

4

1 回答 1

3

描述我遇到的问题,例如,我在 GMT+1,只想保存日期,例如“2019-04-28T00:00:00 GMT+01:00”,JSON 序列化是将日期更改为“2019-04-27T23:00:00.000Z”。基本上发送错误的日期,我猜你面临着类似的事情。

在将整个项目发送到服务器之前,我发现需要立即为整个项目自定义序列化所有内容,这是通过覆盖数据对象中的 toJSON 函数:

Date.prototype.toJSON = function() {
  return moment(this, moment.ISO_8601 ).format();
};

我也在使用 moment.js。希望能帮助到你。

于 2019-04-27T20:06:20.010 回答