カレンダーPlusの終日仕様を日付計算プラグインで回避

こんにちは。かりんこラボの坂本です。

先日、日付計算プラグインのバージョン2をリリースしましたので、このプラグインの活用法を紹介します。

日付計算プラグインはカレンダーPlusプラグインと連携しています

日付フィールド、日時フィールドを使用したアプリについて、カレンダー形式での一覧表示をご利用されている方も多いと思います。
ただ、kintone標準のカレンダー表示はかなりシンプルな機能となっていて、少し物足りない感じがあります。

そんな物足りないカレンダーを一気に素敵にしてくれるプラグインがラジカルブリッジカレンダーPlusです。

日付計算プラグインは、このカレンダーPlusプラグインとの連携機能を追加しています。

具体的には、カレンダーPlusの以下2つのタイミングに連動して、日付計算プラグインの日付計算処理が動きます。

  • カレンダーPlusでレコード登録したとき
  • カレンダーPlusでレコード更新したとき

今回の説明は、この連携機能を活かした「カレンダーPlusの終日の仕様(終了日が1日後ろにずれる挙動)について」の回避方法です。

カレンダーPlusの終日の仕様とは

詳細は「カレンダーPlusの終日の仕様(終了日が1日後ろにずれる挙動)について」に記載がありますので、ここでの説明は簡単に。

例えば、こんな感じでカレンダーPlus上から 12月21日〜12月22日 に終日の予定を登録してみます。
カレンダー上での見た目は、何の違和感もありません。

それでは、このレコードの詳細画面を見てみましょう。

あれ!? 12月22日で登録したはずの終了日付が12月23日になっています。

このようになる理由について、説明には以下のように書かれています。

日時フィールド・日付フィールドに関わらず、終了日時(終了日付)に格納される日付は翌日の日付となっています。

これは RFC 5545 で規定されているスケジュールの標準フォーマット「iCalendar」の仕様に準じているためです。

終日予定に限ったものではありませんが、iCalendarの仕様では開始日時はその予定の期間に含むが、終了日時はその予定の期間に”含まれない”と定義されています。

カレンダーPlusにおける終日予定の終了日時の違和感は、「iCalendar」の仕様に準じているということと、かつkintoneなので、その内部的な日時・日付の持ち方がそのままフォームの値としてユーザーに見えてしまうことに起因しているものと考えます。

カレンダーPlusの終日の仕様(終了日が1日後ろにずれる挙動)についてより引用

システム上のカレンダー形式が、人の感覚とは一致しないことで違和感を感じてしまうわけです。

この現象は、カレンダーPlusから登録したり見たりするときや、「iCalendar」準拠のものに連携する場合には何の問題もありませんが、kintone標準画面から登録したり見たりする時や、人の感覚としての終了日付でデータを扱う場合は、少し工夫が必要になってきます。

日付計算プラグインで違和感を解消

では早速、この終日仕様を回避する手段として、日付計算プラグインを使ってみます。

【フォームの設定】
フォームに人の感覚にあった終了日付を登録するためのフィールド「感覚としての終了日付」を追加します。

【日付計算プラグインの設定】

計算方法指定の設定方法は、以下の通りです。

1行目:「カレンダーPlus終了日付」の「マイナス1日」を「感覚としての終了日」にセット

2行目:「感覚としての終了日」の「プラス1日」を「カレンダーPlus終了日付」にセット

ポイント

1行目の「カレンダーPlus登録時のみ」の設定は、「はい」にしておきます。
これによって、標準画面から登録する時に「感覚としての終了日」が編集不可にならず入力可能となります。

この設定での画面動作は次のようになります。

カレンダーPlusから登録した場合の動き

カレンダーPlusから登録したときに、日付計算プラグインが連動して「感覚としての終了日付」にマイナス1日がセットされます。

標準画面から登録した場合の動き

標準画面から登録するときは、「カレンダーPlus終了日付」は編集不可になり、「感覚としての終了日付」に入力を行います。

「感覚としての終了日付」に人が思う日付を登録すると、「カレンダーPlus終了日付」にプラス1日された日付が登録され、カレンダーPlusの画面で見たときも問題なく表示されるようになります。

まとめ

今回は、日付計算プラグインを使った「カレンダーPlusの終日の仕様(終了日が1日後ろにずれる挙動)について」の回避事例の紹介でした。

なお、この回避方法は、終日のみ使用時の回避手段となっています。
終日と終日以外が混在するアプリの場合は、想定どおりにはなりませんのでご注意ください。

日付計算プラグインのダウンロードはこちらからどうぞ!

日付計算プラグイン説明ページ

警告メッセージが表示されますが、ライセンスキー無しでも使用可能ですので、ぜひお試しください。

なお、警告メッセージ無しでお試しされたい方は、プラグイン購入申し込みページよりライセンス種類を「お試し」で申し込みいただければ、お試しキーを発行いたします。