船井デジタル道場

Digital Dojo

kintoneで「今日から〇日後」の日付を計算をしてみよう!

公開日:2022年08月08日
なぁちゃん

皆さんこんにちは!船井デジタル道場に住み着いてる猫のなぁちゃんです。

ある特定の日付を入力するだけで、「お客様との契約終了日トライアル期間の終了日など、指定した日から〇日後の日付を出したい…」ということはございませんか?

今回はこんなお悩みを解決する、大変便利な日付の計算の方法をお伝えします!

上記のお悩みは、kintoneのフィールドに「計算式」を設定することで解決が出来るのですが、kintoneの「日付の計算式」ってややこしいですよね。。。。

ということで、今回の記事では、kintoneの日付の計算式の利用方法について詳しく解説します!!

以下の記事では時間の計算方法についてご紹介しておりますので、是非こちらもご覧ください!

日付・時刻・日時フィールドの値の扱われ方

まず、日付・時刻・日時の計算式をややこしくしている要因である、UNIX時刻について解説です。

UNIX時刻とは、1970年1月1日午前0時 協定世界時(UTC)からの経過秒数のことです。たとえば、日時が2020年11月30日15時 UTCの場合、UNIX時刻は「1606748400(秒)」となります。

kintoneはこのUNIX時刻が使われていて、日付や時刻の計算をする際の計算式は秒単位で扱います。計算式にも秒単位で入力する必要があります。

1分間は「60(秒)」ですので、1時間は「3600」、計算式では60秒が60回ですので、「60*60」、1日は「86400」、1時間を24回ですので、「60*60*24」と設定することになります。

ある日付から、2日後の日付を計算させたいときの計算式は、日付+(60*60*24*2)となります。

では実際に、kintoneのフォームで設定していきましょう!

日付の計算の設定方法

今回は例として、お客様の申込日から30日間の試用期間を設けており、申込日を入力するだけで自動的に試用期間終了日を表示させたいとします。

例:申込日から30日後の日付(試用期間終了日)を計算する場合

計算式は 申込日+(60*60*24*30) となります。

①申込日の日付フィールドを作成します。

【計算式の設定について】
kintoneで計算を行う際は、計算式にフィールドコードを用います。
フィールドコードは各フィールドの最下部にあります。
フィールドコードをフィールド名と合わせておくと計算式の設定が分かりやすくなります!

②計算フィールドで「試用期間終了日」を作成し、計算式を設定します。

▲日付フィールドの「申込日」のフィールドコードを「申込日」に設定した上で、上記の計算式を設定してください。

申込日を入力すると、試用期間終了日が「秒表示」で表示されます。

▲レコードに入力するとこのような秒表示になります。

計算フィールドで日付計算を行い、表示形式を「数値」に設定すると、秒表示になってしまい非常に分かりづらくなってしまいますので、表示形式を変更しましょう。

③計算結果の表示形式を「日時」または「日付」に設定します。

▲「日付」か「日時」に設定します!

設定すると、下記のように、日付形式で表示されますので、計算フィールドを用いる場合は、表示形式を設定しましょう!

▲「日付」を選択した場合、このような表示になります!

計算元フィールドが日付フィールド計算結果が「日時」の表示の場合、表示される時間は9:00で固定されます。

日付の計算の設定方法(応用編)

表示形式を「2022-09-01」ではなく、「2022年9月1日」と表示したい!…
該当日の「年」だけ抜き出したい

ということもありますよね?この場合は計算フィールドではなく、文字列(1行)フィールドを使います

文字列(1行)フィールドには計算フィールドのように、表示形式がないため、以下のDATE_FORMATという関数を利用することで表示させることができます

DATE_FORMATの活用方法

書式計算式
YYYY(年)2020DATE_FORMAT(日付, “YYYY”, “Etc/GMT”)
MM(月)01DATE_FORMAT(日付, “MM”, “Etc/GMT”)
M(月)1DATE_FORMAT(日付, “M”, “Etc/GMT”)
dd(日)04DATE_FORMAT(日付, “dd”, “Etc/GMT”)
d(日)4DATE_FORMAT(日付, “d”, “Etc/GMT”)
YYYY/MM/dd(年/月/日)2020/01/04DATE_FORMAT(日付, “YYYY/MM/dd”, “Etc/GMT”)
YYYY年MM月dd日(年月日)2020年01月04日DATE_FORMAT(日付, “YYYY年MM月dd日”, “Etc/GMT”)
MM/dd01/04DATE_FORMAT(日付, “MM/dd”, “Etc/GMT”)
M/d
1/4

DATE_FORMAT(日付, “M/d”, “Etc/GMT”)

今回は例として「2022年8月31日」という表示をしてみましょう!

①文字列(1行)フィールドに、表示させたい形式に対応したDATE_FORMAT関数を入力します。

▲今回は「DATE_FORMAT(日付, “YYYY年MM月dd日”, “Etc/GMT”)」を入力しました。

こちらを設定し、申込日のフィールドに日付を入力すると

日付フィールド「申込日」が「YYYY-MM-DD」表示であったものが、文字列(1行)フィールドの申込日(1行)では「YYYY年MM月DD日」の日付表示に変わりました

日付フィールドが未入力の場合
DATE_FORMAT関数で参照している日付フィールドが空欄の場合、文字列(1行)フィールドには、自動的に1970-01-01が表示されます。

この表示を変更するための対処方法としては次の方法があります。

(1)日付フィールドの初期値を設定します。

初期値を設定において「レコード登録時の日付を初期値にする」にチェックを入れることで、レコード登録時の日付が自動的にフィールドに反映されるようになります。

今回の場合は、日付フィールド「申込日」にレコード登録時の日付を初期値にする設定を行うため、「申込日」には「レコード登録時の日付」が自動的に入力されるようになります。

▲「申込日」の設定から「初期値」の部分にチェックを付けます
▲初期値が設定され、文字列(1行)フィールドの「申込日(1行)」にも日付が入力されました!

(2)IF関数の計算式を設定します。

IF関数の計算式を設定することで、日付フィールドが空欄の場合には文字列(1行)フィールドも空欄にすることが出来ます。

計算式:IF(日付=””,””,DATE_FORMAT(日付, “YYYY年M月d日”, “Etc/GMT”))

▲文字列(1行)フィールド「申込日(1行)」に上記の計算式を入力します
(日付フィールド「申込日」のフィールドコードを”申込日”にします)
▲日付フィールド「申込日」も文字列(1行)フィールド「申込日(1行)」も空欄になりました!

最後に

いかがでしたでしょうか?

エラーが発生して設定できない場合は、指定しているフィールドコードが正しいフィールドコードになっているか、設定した計算式に間違いがないかをご確認ください。

また、「月末日などもっと融通利く計算がしたい!」「計算設定するのが面倒くさい!」という方は、日付計算プラグインの利用がおすすめです!ぜひ以下の記事もご覧ください♪

船井総研はサイボウズ®のオフィシャルパートナーです!

船井総研では、コンサルティング会社として中小・中堅企業様をご支援する中で、kintoneを利用した業務改善も多数行っています。

様々な業種でkintoneを用いた業務改善を行った実績があり、そのノウハウを活かして「kintone伴走支援」サービスを提供しております。

「kintoneの運用に困っている…」という企業様だけでなく、

「kintoneでもっと業務改善をしたい!」

「kintoneをもっと使いこなしたい!!」

という企業様も、ぜひ船井総研のkintone伴走支援をご活用ください!