LoginSignup
2
0

More than 1 year has passed since last update.

年と月と日をkintoneの標準機能で日付に変換する

Last updated at Posted at 2021-10-09

年と月と日を日付に変換

kintoneでは、分かれて入力された「年」と「月」と「日」を1つのフィールドにまとめて、日付形式で表示するための関数がありません(2021年10月現在)。
下記の手順で、年と月と日をkintoneの標準機能で日付形式に変換することができます。

ただし、ここでは計算フィールドで変換しているため、リマインダー通知の基準日など、日付・日時フィールドであることが必要な機能に利用することはできません。日付・日時フィールドに計算結果を入力するには、JavaScriptカスタマイズやプラグインなどが必要です。

例1

年 : 2021
月 : 10
日 : 9

日付 : 2021-10-9

例2

ただし、月に2、日に31などが入力されて、月末日を超えている場合は、翌月の1日とします。
年 : 2021
月 : 2
日 : 31

日付 : 2021-3-1

参考

1か月後の日付をkintoneの標準機能で計算
指定月数後の日付をkintoneの標準機能で計算する

考え方

1.年の扱い

kintoneでは1970年1月1日からの秒数で日付を扱う(UNIX日付)ため、1970との年数の差を秒単位で足します。4年に1度のうるう年も考慮します。1900年以降なら下記の計算で対応できます。
その年 : ((年-1970)*365+ROUNDDOWN((年-1968)/4))*24*60*60

2.月の扱い

上記で求めた年に、月を秒単位で足します。1月の場合は、足す必要がないため、月から1を引きます。
その月 : その年+(月-1)*31*24*60*60

3.日の扱い

その月に日を加えて結果日付を求めます。
その月の日 : DATE_FORMAT(その月,"d","Etc/GMT")
その月の1日 : その月-(その月の日-1)*24*60*60
結果日付 : その月の1日+(日-1)*24*60*60

4.月末の扱い

結果日付が月末を超えている場合に翌月の1日とします。
結果日 : DATE_FORMAT(結果日付,"d","Etc/GMT")
日付 : IF(日>結果日,結果日付-(結果日-1)*24*60*60,結果日付)

kintoneのアプリ

※フィールドコードはフィールド名と同じにします。

完成イメージ

年と月と日を日付に変換.gif

入力

・年[数値フィールド](1900~)
・月[数値フィールド](1~12)
・日[数値フィールド](1~31)

計算用

・その年[計算フィールド]
 計算式 : ((年-1970)*365+ROUNDDOWN((年-1968)/4))*24*60*60
 表示形式 : 日付

・その月[計算フィールド]
 計算式 : その年+(月-1)*31*24*60*60
 表示形式 : 日付

・その月の日 [計算フィールド]
 計算式 : DATE_FORMAT(その月,"d","Etc/GMT")
 表示形式 : 数値

・その月の1日 [計算フィールド]
 計算式 : その月-(その月の日-1)*24*60*60
 表示形式 : 日付

・結果日付 [計算フィールド]
 計算式 : その月の1日+(日-1)*24*60*60
 表示形式 : 日付

・結果日 [計算フィールド]
 計算式 : DATE_FORMAT(結果日付,"d","Etc/GMT")
 表示形式 : 数値

変換された日付

・日付 [計算フィールド]
 計算式 : IF(日>結果日,結果日付-(結果日-1)*24*60*60,結果日付)
 表示形式 : 日付

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0