日付、時刻、日時の計算

記事番号: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時刻で扱われるためです。
計算結果を時間の形式で表示するには、計算結果の表示形式を「時間」に設定してください。
スクリーンショット:計算結果の表示方式