12
10

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

FullCalendarの動きメモ

Last updated at Posted at 2015-09-04

確認用ソース

    const $calendar = $('#calendar').fullCalendar({
      header: {
        left: 'prev,next today',
        center: 'title',
        right: 'month,agendaWeek,agendaDay'
      },
      defaultView: 'agendaWeek',
      editable: true,
      selectable: true,
      selectHelper: true,
      select: (start, end, jsEvent, view) => {
        console.log('select');
        console.log(start.toISOString());
        console.log(end.toISOString());
        $calendar.fullCalendar('renderEvent',
          {
            title: 'hoge',
            start: start,
            end: end
          },
          true
        );
        $calendar.fullCalendar('unselect');
      },
      eventClick: (event, jsEvent, view) => {
        console.log('eventClick');
        console.log(event.start.toISOString());
        console.log(event.end.toISOString());
        $calendar.fullCalendar('unselect');
      },
      eventResize: (event, delta, revertFunc, jsEvent, ui, view) => {
        console.log('eventResize');
        console.log(event.start.toISOString());
        console.log(event.end.toISOString());
        $calendar.fullCalendar('unselect');
      },
      eventDrop: (event, delta, revertFunc, jsEvent, ui, view) => {
        console.log('eventDrop');
        console.log(event.start.toISOString());
        console.log(event.end.toISOString());
        $calendar.fullCalendar('unselect');
      },
      events: (start, end, timezone, callback) => {
        console.log('events');
        console.log(start.toISOString());
        console.log(end.toISOString());
      },
      //eventRender: (event, element) => {
      //  console.log('eventRender');
      //}
    });

注意!!

【追記】
あとから気づいたことだが、上記確認用ソース
FullCalendarのタイムゾーンを設定していなかった。
設定しなかった場合は、
http://fullcalendar.io/docs/timezone/timezone/
false (no timezone, the default)
でデフォルトはno timezoneのようだ!!

ということで、
timezone: 'UTC'
を設定したものを下部に追加した

timezone: no timezoneの場合

events(カレンダー表示期間)

Screen Shot 2015-09-06 at 19.58.41.png
start.toISOString() => 2015-09-06
end.toISOString() => 2015-09-13
カレンダー表示日が 9/6 - 9/12 なのでendが+1されて
2015-09-13になっているものと思われる。

ということでサーバーに送るクエリはーこんな感じ。
Screen Shot 2015-09-06 at 21.44.20.png

select(なぞって新規イベント作成)

start.toISOString() => 2015-09-08T06:00:00
end.toISOString() => 2015-09-08T06:30:00

ということでサーバーに送るクエリはーこんな感じ。
Screen Shot 2015-09-06 at 21.46.36.png

eventDrop(イベントを移動)

Screen Shot 2015-09-06 at 20.03.52.png
event.start.toISOString() => 2015-09-08T07:00:00
event.end.toISOString() => 2015-09-08T07:30:00

ということでサーバーに送るクエリはーこんな感じ。
Screen Shot 2015-09-06 at 21.48.21.png

eventClick(イベントをクリック)

event.start.toISOString() => 2015-09-08T07:00:00
event.end.toISOString() => 2015-09-08T07:30:00

eventResize(リサイズで編集)

Screen Shot 2015-09-06 at 20.22.50.png
event.start.toISOString() => 2015-09-08T07:00:00
event.end.toISOString() => 2015-09-08T08:00:00

ということでサーバーに送るクエリはーこんな感じ。
Screen Shot 2015-09-06 at 21.49.39.png

ちなみにブラウザのタイムゾーンにかかわらず上記同じ

Screen Shot 2015-09-06 at 05.32.08.png

var date = new Date();
date.toString();
date.getTimezoneOffset(); => 360

だろうと、

Screen Shot 2015-09-06 at 20.33.04.png

var date = new Date();
date.toString();
date.getTimezoneOffset(); => -540

だろうとconsole.log()で表示された文字列は同じであった。

当然である。 FullCalendarの設定は、timezone: 'no timezone' なのだから。

timezone: 'UTC'

events(カレンダー表示期間)

start.toISOString() => 2015-09-06
end.toISOString() => 2015-09-13

select(なぞって新規イベント作成)

start.toISOString() => 2015-09-08T06:00:00.000Z
end.toISOString() => 2015-09-08T06:30:00.000Z

eventDrop(イベントを移動)

event.start.toISOString() => 2015-09-08T07:00:00.000Z
event.end.toISOString() => 2015-09-08T07:30:00.000Z

eventClick(イベントをクリック)

event.start.toISOString() => 2015-09-08T07:00:00.000Z
event.end.toISOString() => 2015-09-08T07:30:00.000Z

eventResize(リサイズで編集)

event.start.toISOString() => 2015-09-08T07:00:00.000Z
event.end.toISOString() => 2015-09-08T08:00:00.000Z

結果

ちゃんとUTCを示す文字列が付いた!

12
10
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
12
10

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?