如何将日期格式的PrimeNg p日历日期转换为反应形式angular8?

时间:2019-12-12 11:06:34

标签: angular primeng

如何将日期格式的PrimeNg p日历日期转换为反应形式Angular 8。

试图使用DatePipe但显示错误:

  

错误TypeError:date.getDate不是Calendar.push ../ node_modules / primeng / components / calendar / calendar.js.Calendar.formatDate的函数

请提出建议,如何进行?

InTs代码

const now = Date.now();
const myFormattedDate = this.datePipe.transform(now, "dd.mm.yy");
this.addSlot.controls["addSlotDate"].setValue(myFormattedDate);

HTML

<p-calendar
   [minDate]=""
   formControlName="addSlotDate"
   [class.is-invalid]="addSlotDate.invalid && addSlotDate.touched"
   dateFormat="dd.M.yy"
   class="form-control"
   placeholder="dd-mm-yyyy"
   [readonlyInput]="false"
></p-calendar>

1 个答案:

答案 0 :(得分:0)

PrimeNG的Calendar组件日期值具有Date类型,因此您可以使用new Date()返回Date对象,而不是使用Date.now()返回数字。在表单中设置日期之前不必格式化日期,因为PrimeNg的日历组件将使用dateFormat属性处理该格式。

const now = new Date();
this.addSlot.controls['addSlotDate'].setValue(now);

如果您需要在日历组件之外使用字符串格式的日期,则可以像这样使用DatePipe。


const slotDate = this.addSlot.value['addSlotDate'];
const myFormattedDate = this.datePipe.transform(slotDate, 'dd.mm.yy');