我想使用选择日期选择器。我想设置日期格式,但无法弄清楚如何做到这一点。那么有人能举例说明如何设置日期格式吗?
以下是我的日期选择器的代码:
<label class="control-label my-label">From Date</label>
<div class="input-group">
<input tabindex="1" class="form-control" [owlDateTime]="fromDateOfConfirmation" [(ngModel)]="fromDate" name="fromDate" [owlDateTimeTrigger]="fromDateOfConfirmation"
>
<span class="input-group-addon trigger" [owlDateTimeTrigger]="fromDateOfConfirmation">
<span class="fa fa-calendar nopad2 fa-lg"></span>
</span>
<owl-date-time [pickerType]="'calendar'" #fromDateOfConfirmation></owl-date-time>
</div>
修改
我已经尝试过这个。
export const MY_NATIVE_FORMATS = {
parseInput: 'LL LT',
fullPickerInput: 'LL LT',
datePickerInput: 'LL',
timePickerInput: 'LT',
monthYearLabel: 'MMM YYYY',
dateA11yLabel: 'LL',
monthYearA11yLabel: 'MMMM YYYY',
};
providers: [
{ provide: OWL_DATE_TIME_FORMATS, useValue: MY_NATIVE_FORMATS },
],
答案 0 :(得分:3)
您需要创建另一个输入,以显示格式化的日期值。 在您的html中为[ngModel]创建一个输入,并为显示格式化的日期值创建另一个输入。
<div class="date-container">
<!-- Invisible input keep ngModel value -->
<input
class="shadow-input"
name="date_time"
[(ngModel)]="currentDate"
[owlDateTime]="dt1"
>
<!-- Trigger owl-datepicker, display formatted date value -->
<input
type="text"
[owlDateTimeTrigger]="dt1"
placeholder="Date Time"
[value]="currentDate | dateFilter:dateFormat"
>
<owl-date-time #dt1></owl-date-time>
</div>
在stackblitz上观看演示
答案 1 :(得分:2)
您必须通过提供商useValue
export const MY_CUSTOM_FORMATS = {
parseInput: 'LL LT',
fullPickerInput: 'LL LT',
datePickerInput: 'LL',
timePickerInput: 'LT',
monthYearLabel: 'MMM YYYY',
dateA11yLabel: 'LL',
monthYearA11yLabel: 'MMMM YYYY',
};
selector: 'app-custom-format-example',
templateUrl: './custom-format.component.html',
providers: [
{provide: OWL_DATE_TIME_FORMATS, useValue: MY_CUSTOM_FORMATS},
],
检查demo
答案 2 :(得分:1)
如果要使用这种类型的格式,则需要使用一个单独的模块
OwlMomentDateTimeModule
但是它需要一个附加的NPM软件包( MoementJS )
第一步,安装MomentJS
npm install ng-pick-datetime-moment moment --save;
然后您可以使用格式
import { NgModule } from '@angular/core';
import { OwlDateTimeModule, OWL_DATE_TIME_FORMATS} from 'ng-pick-datetime';
import { OwlMomentDateTimeModule } from 'ng-pick-datetime-moment';
// See the Moment.js docs for the meaning of these formats:
// https://momentjs.com/docs/#/displaying/format/
export const MY_MOMENT_FORMATS = {
parseInput: 'l LT',
fullPickerInput: 'l LT',
datePickerInput: 'l',
timePickerInput: 'LT',
monthYearLabel: 'MMM YYYY',
dateA11yLabel: 'LL',
monthYearA11yLabel: 'MMMM YYYY',
};
@NgModule({
imports: [OwlDateTimeModule, OwlMomentDateTimeModule],
providers: [
{provide: OWL_DATE_TIME_FORMATS, useValue: MY_MOMENT_FORMATS},
],
})
export class AppExampleModule {
}
作为替代方案,您可以使用标准格式化程序
import { NgModule } from '@angular/core';
import { OwlDateTimeModule, OwlNativeDateTimeModule, OWL_DATE_TIME_FORMATS} from 'ng-pick-datetime';
// learn more about this from
// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/DateTimeFormat
export const MY_NATIVE_FORMATS = {
fullPickerInput: {year: 'numeric', month: 'numeric', day: 'numeric', hour: 'numeric', minute: 'numeric'},
datePickerInput: {year: 'numeric', month: 'numeric', day: 'numeric'},
timePickerInput: {hour: 'numeric', minute: 'numeric'},
monthYearLabel: {year: 'numeric', month: 'short'},
dateA11yLabel: {year: 'numeric', month: 'long', day: 'numeric'},
monthYearA11yLabel: {year: 'numeric', month: 'long'},
};
@NgModule({
imports: [OwlDateTimeModule, OwlNativeDateTimeModule],
providers: [
{provide: OWL_DATE_TIME_FORMATS, useValue: MY_NATIVE_FORMATS},
],
})
export class AppExampleModule {
}
详细了解Ng日期时间选择器here
答案 3 :(得分:0)
我认为您忘记导入 OwlMomentDateTimeModule 。
@NgModule({
imports: [
OwlDateTimeModule,
OwlNativeDateTimeModule,
OwlMomentDateTimeModule
],
providers: [
{
provide: OWL_DATE_TIME_FORMATS, useValue: OWL_MOMENT_FORMATS
}
]
})