angular - 同一Angular组件中两个日期选择器控件上的多种日期格式
问题描述
我试图让两个日期选择器在同一视图上显示不同的日期格式。一个应该显示month/year
,另一个month/day/year
。问题是提供者只注入一种格式,所以两个控件使用相同的date format
. 这date.getFullYear()
不是函数错误,因为月/年日期选择器缺少日期。以下是我的组件中的提供者部分-
providers: [
{
provide: DateAdapter,
useClass: MomentDateAdapter,
deps: [MAT_DATE_LOCALE, MAT_MOMENT_DATE_ADAPTER_OPTIONS]
},
{ provide: MAT_DATE_LOCALE, useValue: RANGE_FORMATS }
],
和 RANGE_FORMATS 变量:
export const RANGE_FORMATS = {
parse: {
dateInput: 'MM/DD/YYYY',
},
display: {
dateInput: 'MM/DD/YYYY',
monthYearLabel: 'MMM DD YYYY',
dateA11yLabel: 'LL',
monthYearA11yLabel: 'MMMM DD YYYY',
},
};
该页面当前显示“ MM/DD/YYYY
”,因为RANGE_FORMATS
变量“ dateInput
”指定了这一点。然后两个控件都显示month/day/year
. 我需要的是一种格式化显示在 中的日期的方法,或者为每个控件html
使用不同的提供程序。dateInput
datepicker
以下是日期范围日期选择器,month/day/year
格式为-
<div class="toolbar">
<mat-form-field appearance="fill">
<mat-label>Enter a date range</mat-label>
<mat-date-range-input [formGroup]="range" [rangePicker]="picker">
<input matStartDate formControlName="start" placeholder="Start date">
<input matEndDate formControlName="end" placeholder="End date">
</mat-date-range-input>
<mat-datepicker-toggle matSuffix [for]="picker"></mat-datepicker-toggle>
<mat-date-range-picker #picker></mat-date-range-picker>
</mat-form-field>
<mat-date-range-picker #pickerRange></mat-date-range-picker>
下面是month/year
使用MM/YYYY
格式的日期选择器-
<div>
<mat-card>
<mat-card-content>
<mat-card-title>Generate Invoice for</mat-card-title>
<mat-form-field color="accent">
<mat-label>Month and Year</mat-label>
<input matInput [matDatepicker]="dp" [formControl]="date">
<mat-datepicker-toggle matSuffix [for]="dp"></mat-datepicker-toggle>
<mat-datepicker #dp
startView="multi-year"
(yearSelected)="chosenYearHandler($event)"
(monthSelected)="chosenMonthHandler($event, dp)">
</mat-datepicker>
</mat-form-field>
<app-datepicker [change]="changedateInput()"></app-datepicker>
</mat-card-content>
</mat-card>
</div>
如何显示日期范围MM/DD/YYYY
和月份年份日期选择器显示MM/YYYY
?
解决方案
要更改日历视图,请添加带有选项的 startView - 月、年或多年 <mat-datepicker #picker1 startView="year"> 更多信息您可以在此处找到https://material.angular.io/components/datepicker/overview
推荐阅读
- java - Maven 没有正确设置字符编码
- python - 为什么我没有从网站返回任何数据?
- python-3.x - Python:Matplotlib.pyplot 适用于 jupyter notebook 但不适用于 VS Code .py 脚本
- python - 使用 ABCMeta 和 EnumMeta 的抽象枚举类
- java - Java,SQLite,将数据插入数据库
- gradle - 如何将字符串替换添加到插件块
- python - 具有高精度数字的 numpy.fft.fft 的意外行为
- django - 在 Django 中每秒跳动的服务器进程
- vue.js - webpack 引用错误 window.location.hostname 找不到,vue.js
- javascript - 在 THREE.JS 中提取场景的一部分作为纹理