web-dev-qa-db-ja.com

date.getDate()は関数ではありません。 ( 'date.getDate()'では、 'date.getDate()'は未定義です)FullCalendar in Ionic 3

カレンダーUIを表示するためにFullCalendarプラグインを使用するIonic 3プロジェクトでコーディングしています。ページのモジュールでこのコードに問題があり、の背景を変更しようとしています。カレンダーの1日。FullCalendarのdayRender関数を使用しました。

$('#calendar').fullCalendar({

            dayRender: function (date, cell) {
              var today = new Date('2017-09-11T00:40Z')
              if (date.getDate() == today.getDate()) {
                  this.cell.css("background-color", "red");
              }
            },
});

出力にこのランタイムエラーがあります:

date.getDate()は関数ではありません。 ( 'date.getDate()'では、 'date.getDate()'は未定義です)FullCalendar in Ionic 3

日付はFullCalendarライブラリですでに定義されているDateオブジェクトであるため、理由がわかりません。

解決策はありますか?

ps:私の悪い英語でごめんなさい。

3
Lamoichenzio

https://fullcalendar.io/docs/display/dayRender/dayRenderコールバックのドキュメントによると

dateは、指定された日のモーメントです。

したがって、コード内のdateは、Dateオブジェクトではなく、momentJSオブジェクトです。そのため、getDateメソッドは存在しません。 todayをmomentJSオブジェクトとして作成することをお勧めします。そうすれば、それらを直接比較できます。

$('#calendar').fullCalendar({
  dayRender: function (date, cell) {
    var today = moment('2017-09-11T00:00Z');
    if (date.isSame(today, "day")) {
      cell.css("background-color", "red");
    }
  },
  //...
});

私が書いたコードの詳細については、モーメントコンストラクターが解析できる日付の詳細については http://momentjs.com/docs/#/parsing/string/ を参照してください。 http://momentjs.com/docs/#/query/is-same/ 日付比較方法の詳細については。

上記の実際の例をここで見ることができます: http://jsfiddle.net/sbxpv25p/22/

3
ADyson