- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我正在开发一个使用此示例的应用:
https://stackblitz.com/angular/rynxmynlykl
我想要的是以不同的格式显示选择的日期。我想要 mm/dd/yyyy
,而不是 yyyy-mm-dd
。占位符很容易更改,但我无法在文档中找到我要查找的内容 ( https://ng-bootstrap.github.io/#/components/datepicker/api )。
ngModel
接受一个包含年、月和日的对象。 Datepicker 然后将其格式化为上述格式。
我找到的最接近的答案在这里,但现在已经过时了(How to change model structure of angular powered bootstrap ngbDatepicker)。
有没有人遇到过这种情况?
最佳答案
如 the DatePicker documentation 中所述, 您可以提供 NgbDateParserFormatter 的自定义版本.参见 this stackblitz用于演示。
解析器/格式化程序的以下代码改编自 this GitHubGist通过 Niels Robin-Aubertin :
import { Injectable } from "@angular/core";
import { NgbDateParserFormatter, NgbDateStruct } from "@ng-bootstrap/ng-bootstrap";
@Injectable()
export class CustomDateParserFormatter extends NgbDateParserFormatter {
parse(value: string): NgbDateStruct {
if (value) {
const dateParts = value.trim().split('/');
if (dateParts.length === 1 && this.isNumber(dateParts[0])) {
return { year: this.toInteger(dateParts[0]), month: null, day: null };
} else if (dateParts.length === 2 && this.isNumber(dateParts[0]) && this.isNumber(dateParts[1])) {
return { year: this.toInteger(dateParts[1]), month: this.toInteger(dateParts[0]), day: null };
} else if (dateParts.length === 3 && this.isNumber(dateParts[0]) && this.isNumber(dateParts[1]) && this.isNumber(dateParts[2])) {
return { year: this.toInteger(dateParts[2]), month: this.toInteger(dateParts[0]), day: this.toInteger(dateParts[1]) };
}
}
return null;
}
format(date: NgbDateStruct): string {
let stringDate: string = "";
if (date) {
stringDate += this.isNumber(date.month) ? this.padNumber(date.month) + "/" : "";
stringDate += this.isNumber(date.day) ? this.padNumber(date.day) + "/" : "";
stringDate += date.year;
}
return stringDate;
}
private padNumber(value: number) {
if (this.isNumber(value)) {
return `0${value}`.slice(-2);
} else {
return "";
}
}
private isNumber(value: any): boolean {
return !isNaN(this.toInteger(value));
}
private toInteger(value: any): number {
return parseInt(`${value}`, 10);
}
}
日期解析器/格式化器被添加到模块中的提供者:
import { NgbDateParserFormatter, ... } from '@ng-bootstrap/ng-bootstrap';
import { CustomDateParserFormatter } from "./datepicker-formatter";
@NgModule({
...
providers: [{ provide: NgbDateParserFormatter, useClass: CustomDateParserFormatter }]
})
export class AppModule { }
关于angular - 更改 ngbDatepicker 输入模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53127490/
我想通过单击输入字段打开 bootstrap 4 日期选择器。 我不想显示日历图标 我该如何解决这个问题? 最佳答案 你可以这样做: 我在这里创建了一个小演示示例: https://stackbli
在我的 Angular 应用程序模板驱动表单中,我有一个出生日期字段并为该字段添加了 ngbDatepicker 作为给定。 我从后端 API 中获取出生日期为 dob: "2019-02-16 0
我正在使用由 Angular 4 提供支持的 Bootstrap 4 组件开发一个应用程序,但我无法将 NgbDatepicker 指令配置为仅显示月份和年份,而不是日期 - 就像信用卡一样。 我只想
我正在使用 ng-bootstrap Datepicker .我想格式化显示在模型输入字段中的日期。我查看了 API,但没有找到除 NgbDateParserFormatter 之外的任何示例不用多解
我是 angular 4 的初学者,我正在尝试在网站中实现 Bootstrap ngbdatepicker。 这是我的 HTML 代码: 我尝试使用
我正在开发一个使用此示例的应用: https://stackblitz.com/angular/rynxmynlykl 我想要的是以不同的格式显示选择的日期。我想要 mm/dd/yyyy,而不是 yy
我正在使用 ngbDatepicker 和 ng2-datepicker-jalali。我使用 ngbDatepicker 指令,如下所示:
我在我的 Angular 2 网络应用程序中使用响应式(Reactive)表单,但在将日期分配给 ngbDatepicker (ngbootstrap 1 alpha 6) 时遇到了问题。我的对象有一
我有数组现有数据。从 ngbdatepicker 中选取日期时如何禁用现有数据? 这是我过去的禁用代码 var current = new Date(); current.setDate(curren
这看起来很简单,我确定我没有在某处导入某些东西,但我已经尝试了所有模块,包括测试,但没有成功。测试失败并出现此错误: There is no directive with "exportAs" set
我在 Angular2 项目的 Reactive Form 中使用 ng-bootstrap 的 ngbDatepicker,日期是可选的,但是 ngbDatepicker 总是将表单标记为无效,除非
我正在使用 Angular 4,我正在尝试添加日期选择器 datepicker-popup.html我收到如下所示的错误。我没有得到什么样的 错误 这是。请帮帮我。 datepicker-popup.
在调用后端 API 保存数据之前,我尝试将 ngbDatepicker 日期格式转换为字符串,因为它仅允许字符串格式的日期。我尝试使用 subscribedData.MaturityDate.toSt
我想禁用 ngbDatepicker 中的所有上一个/过去日期, 我用过 ngbDatepicker 。 我的 HTML 是: 最佳答案 您可以创建 NgbDatepickerConfig 的实现,
出于某种我不知道的原因,我的 NgbDatePicker 比我想要的要小得多。它目前以以下尺寸显示: ...当我期望它以找到的示例中的尺寸显示时 here 我注意到一件奇怪的事情是,我的应用程序中日期
在我的 Angular 4 中,我使用的是 Ng-bootstrap (v1.1.0) 我在多个模块下有多个日期选择器。我想在所有位置设置 maxDate 配置。我的文件夹结构如下。 public.m
我正在使用 angular powered bootstrap ngbDatepicker .我已经创建了我自己的自定义控件,它将在不同的页面中用于日期捕获,如下所示。 我在这里传递了 birth
我目前正在阅读 ng-bootstrap 组件的国际化。他们的文档对日期选择器说: Since the 2.0.0 release datepicker will use the applicatio
我正在使用 NgbDatepicker 可以在 ngAfterViewInit() 上完成喜欢: @ViewChild('dp') datepicker: NgbDatepicker; ngAft
我无法理解如何使用 DI 在我导入的组件中提供特定的构造函数参数。 NgbDatePicker 包含一个自定义格式化程序接口(interface) (NgbDateParserFormatter),在
我是一名优秀的程序员,十分优秀!