我是Angular的新手,我对将添加到POST请求中的对象的Date属性进行序列化的最佳方法有几个疑问。 给定示例类
export class MyClass{
public dateProperty: Date;
}
服务中包含以下代码:
public addMyClass(myClass: MyClass): Observable<MyClass> {
return this.http.post<MyClass>(this.apiBaseUrl, myClass);
}
我必须以以下格式'yyyy-MM-dd hh:mm'
序列化Date。
我考虑了不同的方式,例如定义装饰器(如果可能)或覆盖toJson()
方法,但是我不知道这些是唯一的选择还是有更好的解决方案...
答案 0 :(得分:0)
使用时刻
npm install moment --save
然后为您服务
import * as moment from 'moment';
const dateTime = new Date();
console.log(moment(dateTime).format("YYYY-MM-DD HH:mm"));
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.22.2/moment.min.js"></script>
答案 1 :(得分:0)
例如,描述我遇到的问题,例如我在格林尼治标准时间+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。希望对您有所帮助。