typescript - 如何在 ngbdatepicker 中更改 datepicker 日期格式,如 dd/mm/yyyy
问题描述
我正在为 datepicker 使用 ng-boostrap:https ://ng-bootstrap.github.io/#/components/datepicker/api 但我不知道如何更改日期格式,如 dd/mm/yyyy。现在它显示 yyyy/mm/dd 但我想要 dd/mm/yyyy。请帮助任何人。
演示:https ://stackblitz.com/edit/angular-6wpn3h-ahcq4x?file=src/app/datepicker-popup.html
<div class="input-group">
<input class="form-control" placeholder="dd/mm/yyyy"
name="dp" [(ngModel)]="model" ngbDatepicker #d="ngbDatepicker">
<div class="input-group-append">
<button class="btn btn-outline-secondary calendar" (click)="d.toggle()" type="button"></button>
</div>
</div>
解决方案
使用 ng-bootstrapNgbDateISOParserFormatter
作为指南,在datepicker-popup.ts
. 下面的代码(IMO)比原始代码更简单,并且不依赖于导入util.ts
:
import { NgbDateParserFormatter, NgbDateStruct } from '@ng-bootstrap/ng-bootstrap';
import { Injectable } from '@angular/core';
function padNumber(value: number | null) {
if (!isNaN(value) && value !== null) {
return `0${value}`.slice(-2);
} else {
return '';
}
}
@Injectable()
export class NgbDateCustomParserFormatter extends NgbDateParserFormatter {
parse(value: string): NgbDateStruct | null {
if (value) {
const dateParts = value.trim().split('/');
let dateObj: NgbDateStruct = { day: <any>null, month: <any>null, year: <any>null }
const dateLabels = Object.keys(dateObj);
dateParts.forEach((datePart, idx) => {
dateObj[dateLabels[idx]] = parseInt(datePart, 10) || <any>null;
});
return dateObj;
}
return null;
}
format(date: NgbDateStruct | null): string {
return date ?
`${padNumber(date.day)}/${padNumber(date.month)}/${date.year || ''}` :
'';
}
}
然后在in 中导入NgbDateCustomParserFormatter
并设置提供程序:@NgModule
datepicker-popup.module.ts
providers: [
{provide: NgbDateParserFormatter, useClass: NgbDateCustomParserFormatter}
]
我已经分叉了您的 StackBlitz 并在此处添加了此功能。
推荐阅读
- javascript - 无法使用cheerio/node.js 抓取图像
- angular - 如何在 Angular 中构造表单的输出以符合 REST 输入
- process - 进程如何命名?
- java - 我如何有效地禁止用户使用 Spring Web 应用程序
- python - 使用数据框将列数据显示为单个列
- quarkus - 如何使用 web.xml 作为部署描述符本地构建基于 servlet 的 Quarkus 应用程序?
- c# - 子节点未正确序列化
- geofirestore - 如何处理 GeoFirestore 查询的读取操作?
- nand2tetris - 在第 0 行,表达式预期错误(Nand2tetris CPU-emulator)
- bash - 在 Mac OSX 上从 bash 脚本运行时出现 imagemagick 错误