angular - Datepicker 不显示日期格式 MM/DD/YYYY 角度 4
问题描述
在我的 Angular 4 项目中,我的 html 中有一个日期选择器。
在 html 中:
<mat-form-field class="col-sm-12 nopadding pull-left">
<input matInput [matDatepicker]="date" placeholder="Please select a date" [(ngModel)]="txtDate">
<mat-datepicker-toggle matSuffix [for]="date"></mat-datepicker-toggle>
<mat-datepicker #date></mat-datepicker>
</mat-form-field>
我能够在我的数据库中选择日期并将其转换为 dd/mm/yyyy 格式。当我检索日期时,我将其转换回 MM/DD/YYYY(我的 datepicker 工作的格式),我从 web api 获取值,在控制台中我可以看到值被正确转换并分配给 ngModel。但它没有显示在日期选择器字段中
在 ts 文件中
var dateParts = result.Date.split("/");
var dateObject = new Date(dateParts [2], dateParts [1] - 1, dateParts [0]);
this.txtDate=moment(dateObject ).format('MM/DD/YYYY'); -- output of this in console is 11/14/2018 (the desired output)
但日期选择器中没有显示相同的内容。你能帮忙吗!!
解决方案
我宁愿建议您创建一个自定义管道:
[(ngModel)]="txtDate | dateformatter:'MM/DD/YYYY'"
import {
Pipe,
PipeTransform
} from '@angular/core';
@Pipe({ name: 'dateformatter' })
export class DateFormatterPipe implements PipeTransform {
transform(value: number, dateformat: string): string {
var dateParts = result.Date.split("/");
var dateObject = new Date(dateParts [2], dateParts [1] - 1, dateParts [0]);
return moment(dateObject).format(dateformat.toUpperCase());
}
}
或者您可以查看date
管道:
[(ngModel)]="txtDate | date:'shortDate'"
推荐阅读
- javascript - 使用滑动动作“绘制”表格单元格
- openlayers - OpenLayers 6.5.0 不解析具有多种特征类型的 GML 3.2
- python - 如何解决“ValueError: Input 0 is in compatible with layer model: expected shape=(None, 16, 16, 3), found shape=(16, 16, 3)”?
- angular - 将模板从子组件嵌入到父组件
- android - 如何从android kotlin中的另一个调用ViewModel方法?
- reactjs - 我应该在 powerapp 组件平台应用程序中的哪里插入 redux 提供程序标签?
- for-loop - Qlikview 加载中的循环
- azure - 错误:流式传输作业失败:流分析作业存在验证错误:当前不支持到端点的多个输入列
- api - Discord API:通过 OAuth2 隐式授权流程获取用户
- python - 在以顶点为中心的网格中绘制环