Javascript 角材料日期选择器+;矩,序列化后端的矩对象?

Javascript 角材料日期选择器+;矩,序列化后端的矩对象?,javascript,angular,momentjs,angular-reactive-forms,angular-moment,Javascript,Angular,Momentjs,Angular Reactive Forms,Angular Moment,我有一个日期选择器,它使用带有区域设置的矩适配器,所有日期都可以,但我无法在后端转换它们。我使用formGroup.value 在将其发送到后端(通过angular firebase)之前,它看起来像: from: Moment _d: Sat Jul 06 2019 01:00:00 GMT+0100 (British Summer Time) {} _i: {year: 2019, month: 6, date: 6} _isAMomentObject: true _isUTC: true

我有一个日期选择器,它使用带有区域设置的矩适配器,所有日期都可以,但我无法在后端转换它们。我使用
formGroup.value

在将其发送到后端(通过angular firebase)之前,它看起来像:

from: Moment
_d: Sat Jul 06 2019 01:00:00 GMT+0100 (British Summer Time) {}
_i: {year: 2019, month: 6, date: 6}
_isAMomentObject: true
_isUTC: true
_isValid: true
_locale: Locale {_calendar: {…}, _longDateFormat: {…}, _invalidDate: "Invalid date", ordinal: ƒ, _dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, …}
_offset: 0
_pf: {empty: false, unusedTokens: Array(0), unusedInput: Array(0), overflow: -1, charsLeftOver: 0, …}
__proto__: Object
from:
>        { _isAMomentObject: true,
>          _i: [Object],
>          _isUTC: true,
>          _pf: [Object],
>          _locale: [Object],
>          _d: {},
>          _isValid: true,
>          _offset: 0 },
但在后端记录它时,看起来像:

from: Moment
_d: Sat Jul 06 2019 01:00:00 GMT+0100 (British Summer Time) {}
_i: {year: 2019, month: 6, date: 6}
_isAMomentObject: true
_isUTC: true
_isValid: true
_locale: Locale {_calendar: {…}, _longDateFormat: {…}, _invalidDate: "Invalid date", ordinal: ƒ, _dayOfMonthOrdinalParse: /\d{1,2}(st|nd|rd|th)/, …}
_offset: 0
_pf: {empty: false, unusedTokens: Array(0), unusedInput: Array(0), overflow: -1, charsLeftOver: 0, …}
__proto__: Object
from:
>        { _isAMomentObject: true,
>          _i: [Object],
>          _isUTC: true,
>          _pf: [Object],
>          _locale: [Object],
>          _d: {},
>          _isValid: true,
>          _offset: 0 },
值为空,当然,当我试图从中获取任何类型的日期时,会抛出TypeErrors

我通过
@angular/fire
将其作为httpCallable函数发送

编辑:当前的解决方法相当粗糙/没有准备好:

    let oldFrom: moment.Moment = this.from.value;
    let oldTo: moment.Moment = this.to.value;
    this.ReportForm.controls.from.setValue(oldFrom.toISOString());
    this.ReportForm.controls.to.setValue(oldTo.toISOString());
    this.submitted.emit(this.ReportForm.value);
    this.ReportForm.controls.from.setValue(oldFrom);
    this.ReportForm.controls.to.setValue(oldTo);

我需要将其更改回其他对象的某个时刻,即他们将在以后的所有日期停止工作。

在发送到后端之前,您可以使用
格式

momentDate.format('YYYY-MM-DD')
我通常做的是

momentDate.utc().toISOString()

我考虑过这一点,但问题是我的表单是可重用的,一些控件可能/可能不在表单组中。如果我必须从头开始重建整个对象,我必须围绕它的灵活性引入逻辑,并对其进行破解,我想知道是否还有其他可能first@MichaelB对我来说,表单驻留在组件中,格式化在发送http之前在服务中完成,或者在模型构造函数中完成。如果您真的想得到一个字符串作为表单值,您也可以编写自己的自定义适配器。