日付、時刻、日時の計算

記事番号:040502

[日付][時刻][日時]のフィールドをフォームに配置し、計算式から参照できます。

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

[日付][時刻][日時]のフィールドの値は、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時刻で扱われるためです。
計算結果を時間の形式で表示するには、計算結果の表示形式を[時間]に設定してください。
スクリーンショット:計算結果の表示方式