-1

我有一个日历控件,我想为其设置一些值,但我在下面的行中收到以下错误,并且值也没有设置。

this.data.dateIn = this.selecteddata.dateIn;

<p-calendar [(ngModel)]="data.dateIn" [showIcon]="true" name="dateInCalendar"   
             required #dateInCalendar="ngModel">
</p-calendar>

错误错误:未捕获(承诺):TypeError:date.getMonth不是函数TypeError:date.getMonth不是Calendar.webpackJsonp中的函数.../../../../primeng/components/calendar/ Calendar.js.Calendar.formatDate (calendar.js:649) 在 Calendar.webpackJsonp.../../../../primeng/components/calendar/calendar.js.Calendar.updateInputfield (calendar.js:252 ) 在 Calendar.webpackJsonp.../../../../primeng/components/calendar/calendar.js.Calendar.writeValue (calendar.js:595) 在 forms.es5.js:1779 在 forms.es5 .js:2965 at Array.forEach () at FormControl.webpackJsonp.../../../forms/@angular/forms.es5.js.FormControl.setValue (forms.es5.js:2965) 在表单中。 es5.js:4367 在 ZoneDelegate.webpackJsonp.../../../../zone.js/dist/zone.js.ZoneDelegate.invoke (zone.js:365) 在 Object.onInvoke (core.es5.js:3890) 在 ZoneDelegate.webpackJsonp.../../../../zone.js/dist/zone.js.ZoneDelegate.invoke (zone. js:364) 在 Zone.webpackJsonp.../../../../zone.js/dist/zone.js.Zone.run (zone.js:125) 在 zone.js:758 在 ZoneDelegate。 webpackJsonp.../../../../zone.js/dist/zone.js.ZoneDelegate.invokeTask (zone.js:398) 在日历的 Object.onInvokeTask (core.es5.js:3881)。 webpackJsonp.../../../../primeng/components/calendar/calendar.js.Calendar.formatDate (calendar.js:649) 在 Calendar.webpackJsonp.../../../.. /primeng/components/calendar/calendar.js.Calendar.updateInputfield (calendar.js:252) 在 Calendar.webpackJsonp.../../../../primeng/components/calendar/calendar.js.Calendar。 forms.es5.js 中的 writeValue (calendar.js:595):1779 at forms.es5.js:2965 at Array.forEach () at FormControl.webpackJsonp.../../../forms/@angular/forms.es5.js.FormControl.setValue (forms.es5.js: 2965) 在 Forms.es5.js:4367 在 ZoneDelegate.webpackJsonp.../../../../zone.js/dist/zone.js.ZoneDelegate.invoke (zone.js:365) 在 Object. ZoneDelegate.webpackJsonp 的 onInvoke (core.es5.js:3890).../../../../zone.js/dist/zone.js.ZoneDelegate.invoke (zone.js:364) 在 Zone。 webpackJsonp.../../../../zone.js/dist/zone.js.Zone.run (zone.js:125) at zone.js:758 at ZoneDelegate.webpackJsonp.../.. /../../zone.js/dist/zone.js.ZoneDelegate.invokeTask (zone.js:398) 在 Object.onInvokeTask (core.es5.js:3881) 在 resolvePromise (zone.js:710) [角度] 在:4200/polyfills.bundle.js:7469:17 [角度] 在 Object.onInvokeTask (core.es5.js:3881) [角度] 在 drainMicroTaskQueue (zone.js:591) [] 在 XMLHttpRequest.ZoneTask.invoke (zone.js:464) []

4

2 回答 2

3

解决了问题,提供了帮助他人的解决方案,只需转换selecteddata.dateIn.toDate().

this.data.dateIn = this.selecteddata.dateIn.toDate();
于 2017-09-26T09:09:36.410 回答
2
TypeError: date.getMonth is not a function 

=>我认为您正在使用该功能从日期中获取月份。但日期无效或格式错误。这就是为什么您的格式功能不起作用的原因。

根据我的想法,请先使用 moment.js 来包装您的日期。例子 :

let selectedDate = moment(dateString);

如果你想得到月份,你只需使用:

let month = ("0"+(selectedEndDate.get("month")+1)).slice(-2);

您的格式日期对 p 日历无效。您可以使用并将其传递给日历:

this.currentDate = moment(new Date()).format('YYYY-MM-DD');
于 2017-09-22T09:07:05.733 回答