问题
I need to set a default date in datepicker. I tried using defaultDate property of p-calender as given below:
<p-calendar placeholder="mm/dd/yyyy"
name="deadline"
required
[(ngModel)]="deadline"
#deadline="ngModel"
[showIcon]="true"
showTime="showTime"
hourFormat="12"
[defaultDate]="defaultDate">
Component.ts code:
public defaultDate: Date = new Date();
ngOnInit() {
this.defaultDate.setDate(this.defaultDate.getDate() - 5);
}
However, the above code is not working. Please help.
回答1:
//deadline: Date = new Date(0);
deadline: Date;
defaultDate: Date = new Date("January 31 1980 12:30");
ngOnInit() {
//if (this.deadline == undefined)
// this.deadline = new Date("June 30 1966 12:30");
}
According to the issue, defaultDate is to display the month-year on first opening if the field is blank.
The defaultDate property is not used to set a specific date and is only applicable if ngModel value is not set. To set the default displayed date, use ngModel instead of defaultDate.
回答2:
You have to use ngModel for binding with your default date as described here : Open Link
So, in your case, something like this should work:
<p-calendar placeholder="mm/dd/yyyy"
name="deadline"
required
[(ngModel)]="deadline"
#deadline="ngModel"
[showIcon]="true"
showTime="showTime"
hourFormat="12"
[(ngModel)]="defaultDate">
回答3:
try this
public deadline: Date;
ngOnInit() {
this.deadline.setDate((new Date()).getDate() - 5);
}
来源:https://stackoverflow.com/questions/46932331/primeng-p-calender-default-date-not-working