Primeng:p-日历默认日期不起作用

问题描述 投票:0回答:4
angular typescript primeng
4个回答
2
投票
//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。


0
投票

您必须使用 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


0
投票

我的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) {
  }
}

-1
投票

试试这个

public deadline: Date;
ngOnInit() {
    this.deadline.setDate((new Date()).getDate() - 5);
}
© www.soinside.com 2019 - 2024. All rights reserved.