🫠

kintoneでLuxonを使って日時を文字列であらわす

2023/04/19に公開

kintone や Garoon で日時を扱う時、私は、JavaScriptをそのまま使うのはちょっと面倒なのでLuxonを使っています。

最近Luxonを色々触る機会があったので自分用の備忘録としてまとめてみました。
だれかの役に立ったら嬉しいです。

kintone で Luxon を使う方法

Cybozu CDN のLuxonを使いましょう。

2023年4月19日の時点で↓このURLが最新です

https://js.cybozu.com/luxon/3.3.0/luxon.min.js

JavaScript / CSSでカスタマイズ にCDNを貼り付けて保存したら、アプリの一覧画面などを開いてデベロッパーツールのコンソールを開きましょう。

Luxon の使い方いろいろ

kintone UI Component の DateTimePicker に入力した値にタイムゾーンを追加してゴニョゴニョ使いたい時とか、
valueを指定するときとかに使えます。

※もっと短くかけるとかあったら教えてくださいね!

// 現在時刻(UTC)
luxon.DateTime.utc().toISO();     // => '2023-04-18T14:40:09.447Z'

// 現在時刻(ローカル)
luxon.DateTime.now().toISO();     // => '2023-04-18T23:40:32.747+09:00'
luxon.DateTime.local().toISO();   // => '2023-04-18T23:40:39.538+09:00'

// 文字列から時刻とか取得
luxon.DateTime.fromISO('2023-10-01').toISO();  // => '2023-10-01T00:00:00.000+09:00'

// UTC時刻が'yyyy-MM-ddTHH:mm:ssZ'の書式でほしいとき
luxon.DateTime.fromISO('2023-04-25T15:50:00').toUTC().startOf('second').toISO({suppressMilliseconds: true})
// => '2023-04-21T06:42:53Z'

// ローカルの時刻が'yyyy-MM-ddTHH:mm:ss+09:00'の書式でほしいとき(日本の場合)
luxon.DateTime.fromISO('2023-04-25T15:50:00').startOf('second').toISO({suppressMilliseconds: true})
// => '2023-04-21T15:43:00+09:00'

// ミリ秒も、タイムゾーンもいらないとき
luxon.DateTime.fromISO('2023-10-01T00:00:00.000+09:00').toFormat('yyyy-MM-dd\'T\'HH:mm:ss');
// => '2023-10-01T00:00:00'
luxon.DateTime.fromISO('2023-10-01T00:00:00.000+09:00').startOf('second').toISO({ suppressMilliseconds: true , includeOffset: false});
// => '2023-10-01T00:00:00'

Discussion