angular - 角度不显示正确格式的时刻
问题描述
在我的项目中,我正在使用时刻来解析日期选择器上显示的格式。在未启用生产模式的情况下运行时,格式将按预期显示。 无生产模式
但是在启用生产模式的情况下运行时,格式不起作用。 生产模式
有谁知道为什么会这样?有什么建议可以解决吗?
这是代码
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);
}
}
解决方案
明确定义您想要的格式。
let momentPeriodStr = momentDateObj.format('YYYY/MM');
let momentDateStr = momentDateObj.format('DD/MM/YYYY');
推荐阅读
- python - 获取从数组到变量的所有内容
- reactjs - 检查路由是否有效反应路由器
- c# - c# 中的高级元编程是否有一些行业“标准”?
- jenkins - Jenkins 在失败时打印敏感变量
- mapbox - 有什么方法可以为 mapbox 中同一图层上的每个功能在悬停时提供不同的光标样式?
- angular - Angular 9 异步管道和搜索过滤器
- mysql - 迁移到 MySQL 8 后,Hibernate Criteria 查询不适用于日期时间列
- javascript - 在我设置某些状态后尝试将数据从子组件传递到安装上的父组件时出现恒定的无限循环
- methods - 哈希表是否支持与二叉搜索树相同的方法?
- spring-boot - 如何在所有客户端的春季会话空闲时间后重定向到登录页面