首页 > 解决方案 > 角度不显示正确格式的时刻

问题描述

在我的项目中,我正在使用时刻来解析日期选择器上显示的格式。在未启用生产模式的情况下运行时,格式将按预期显示。 无生产模式

但是在启用生产模式的情况下运行时,格式不起作用。 生产模式

有谁知道为什么会这样?有什么建议可以解决吗?

这是代码

import { Component, OnInit, Input,Output,EventEmitter } from '@angular/core';
import {FormBuilder, FormGroup, FormControl, Validators} from '@angular/forms';
import {MomentDateAdapter} from '@angular/material-moment-adapter';
import {DateAdapter, MAT_DATE_FORMATS, MAT_DATE_LOCALE} from '@angular/material/core';

import * as _moment from 'moment';
const moment = _moment;

export var MY_FORMATS = {
  parse: {
    dateInput: 'LL',
  },
  display: {
    dateInput: 'DD/MM/YYYY',
    monthYearLabel: 'MMM YYYY',
    dateA11yLabel: 'LL',
    monthYearA11yLabel: 'MMMM YYYY',
  },
};

@Component({
  selector: 'app-custom-date',
  templateUrl: './custom-date.component.html',
  styleUrls: ['./custom-date.component.css'],
  providers: [
    {provide: DateAdapter, useClass: MomentDateAdapter, deps: [MAT_DATE_LOCALE]},

    {provide: MAT_DATE_FORMATS, useValue: MY_FORMATS},
  ],
})
export class CustomDateComponent implements OnInit {
    @Input() myFormControl: FormControl;
    @Input() myFormGroup: FormGroup;
    @Input() myFormControlName: string;
    @Input() myName: string;
    @Input() myFormat: string;
  @Input() myDisabled: boolean;
  @Input() minDate = new Date(1900,0,1);
  @Input() maxDate = new Date(2200,0,1);
  @Output() myDateChange = new EventEmitter();

  constructor() { }

  ngOnInit() {
    MY_FORMATS.display.dateInput = this.myFormat;
  }
  changeDate(): void{
    this.myDateChange.emit(this.myFormGroup.get(this.myFormControlName).value);
  }
}

标签: angularmomentjs

解决方案


明确定义您想要的格式。

let momentPeriodStr = momentDateObj.format('YYYY/MM');
let momentDateStr = momentDateObj.format('DD/MM/YYYY');

推荐阅读