日付、時刻、日時の計算
[日付]、[時刻]、[日時]のフィールドをフォームに配置し、計算式から参照できます。
[日付]、[時刻]、[日時]フィールドの値の扱われ方
[日付]、[時刻]、[日時]のフィールドの値は、UNIX時刻として扱われます。UNIX時刻とは、1970年1月1日午前0時 協定世界時(UTC)からの経過秒数のことです。UNIXタイムスタンプとも呼ばれます。たとえば、日時が「2020年11月30日15時 UTC」の場合、UNIX時刻は「1606748400」です。
Kintoneでは、日付や日時は秒単位で扱います。計算式にも秒単位で指定します。たとえば1分間は「60」と入力します。1時間は「3600」または「60*60」、1日は「86400」または「60*60*24」と入力します。
例:2日後の日付
日付 + (60*60*24*2)
日付の計算
[計算]フィールドに計算式を記載し、日付を計算できます。
たとえば、次のような計算が可能です。
- [日付]フィールドの値の N 日後の計算
例:試用期間(30日間)の終了日を計算する場合の計算式
申込日 + (60*60*24*30)
日付の計算結果の表示形式
[計算]フィールドで、計算結果の表示形式を[数値]に設定している場合や、[文字列(1行)]フィールドで計算式を使用する場合は、日付や日時の計算結果は数字の羅列で表示され、日付の形式では表示されません(例:2020年11月13日 ⇒ 1605225600)。
これは、日付の値がUNIX時刻で扱われるためです。
日付や日時の計算結果を日付の形式で表示するには、次のように対応してください。
- [計算]フィールドの場合:計算結果の表示形式を[日時]または[日付]に設定する
- [文字列(1行)]フィールドの場合:DATE_FORMAT関数を使用して、次のように計算式に記述する
書式 | 例 | 計算式 |
---|---|---|
YYYY(年) | 2020 | DATE_FORMAT(日付, "YYYY", "Etc/GMT") |
MM(月) | 01 | DATE_FORMAT(日付, "MM", "Etc/GMT") |
M(月) | 1 | DATE_FORMAT(日付, "M", "Etc/GMT") |
dd(日) | 04 | DATE_FORMAT(日付, "dd", "Etc/GMT") |
d(日) | 4 | DATE_FORMAT(日付, "d", "Etc/GMT") |
YYYY/MM/dd(年/月/日) | 2020/01/04 | DATE_FORMAT(日付, "YYYY/MM/dd", "Etc/GMT") |
YYYY年MM月dd日(年月日) | 2020年01月04日 | DATE_FORMAT(日付, "YYYY年MM月dd日", "Etc/GMT") |
MM/dd | 01/04 | DATE_FORMAT(日付, "MM/dd", "Etc/GMT") |
M/d | 1/4 | DATE_FORMAT(日付, "M/d", "Etc/GMT") |
注意:[日付]フィールドが未入力の場合
DATE_FORMAT関数で参照している[日付]フィールドが空欄の場合、[文字列(1行)]フィールドには、「1970-01-01」が表示されます。
対処方法として、次の方法があります。
- [日付]フィールドの初期値を設定する
- [文字列(1行)]フィールドにIF関数の計算式を設定する
日付が空欄の場合、[文字列(1行)]も空欄にできます。
計算式:IF(日付="","",DATE_FORMAT(日付, "YYYY年M月d日", "Etc/GMT"))
時間の計算
[計算]フィールドに計算式を記載し、時間を計算できます。
たとえば、次のような計算が可能です。
- 時間の差分の計算
例:1日の勤務時間を計算する場合の計算式
退勤-出勤-休憩*60 - 日時と時間の足し算、および引き算
例:月の勤務時間合計を計算する場合の計算式
SUM(勤務時間)
時間の計算結果の表示形式
[計算]フィールドで計算結果の表示形式を[数値]に設定している場合は、時間の計算結果は数字の羅列で表示され、時間の形式では表示されません。
これは、時間の値がUNIX時刻で扱われるためです。
計算結果を時間の形式で表示するには、計算結果の表示形式を[時間]に設定してください。