//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");
}
根据issue,如果该字段为空,defaultDate 将显示首次打开时的月年。
defaultDate 属性不用于设置特定日期,仅在未设置 ngModel 值时适用。要设置默认显示日期,请使用 ngModel 而不是 defaultDate。
您必须使用 ngModel 与默认日期绑定,如下所述:打开链接
所以,在你的情况下,这样的事情应该有效:
<p-calendar placeholder="mm/dd/yyyy"
name="deadline"
required
[(ngModel)]="deadline"
#deadline="ngModel"
[showIcon]="true"
showTime="showTime"
hourFormat="12"
[defaultDate]=deadline>
更多信息请参考Primeng github中的calendar.ts文件:https://github.com/primefaces/primeng/blob/master/src/app/components/calendar/calendar.ts
我的html:
<p-calendar [dateFormat]="'dd/mm/yy'" [maxDate]="minDate" [defaultDate]="minDate" [(ngModel)]="date" [iconDisplay]="'input'" [showIcon]="true" placeholder="JJ/MM/YYYY" id="date" ></p-calendar>
我的ts:
export class DateFormPageComponent {
date: Date | undefined;
currentDate = new Date();
minDate :Date = new Date(this.currentDate.getFullYear()-13, this.currentDate.getMonth(), this.currentDate.getDate());
constructor(private router: Router, private route: ActivatedRoute) {
}
}
试试这个
public deadline: Date;
ngOnInit() {
this.deadline.setDate((new Date()).getDate() - 5);
}