日付、時刻、日時の計算
日付、時刻、日時のフィールドをフォームに配置し、計算式から参照できます。
日付、時刻、日時フィールドの値の扱われ方
日付、時刻、日時のフィールドの値は、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時刻で扱われるためです。
計算結果を時間の形式で表示するには、計算結果の表示形式を「時間」に設定してください。