如何将日期格式的PrimeNg p日历日期转换为反应形式Angular 8。
试图使用DatePipe但显示错误:
错误TypeError:date.getDate不是Calendar.push ../ node_modules / primeng / components / calendar / calendar.js.Calendar.formatDate的函数
请提出建议,如何进行?
const now = Date.now();
const myFormattedDate = this.datePipe.transform(now, "dd.mm.yy");
this.addSlot.controls["addSlotDate"].setValue(myFormattedDate);
<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>
答案 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');