Closed5

Luxonまとめ

ankou22ankou22

日付オブジェクトを取得

引数を指定して取得

const dt = DateTime.local(2017, 5, 15, 8, 30);

現時刻取得
引数を渡さないのと同じだが、分かりやすく書ける。

const now = DateTime.now();

local()だといけるけどnow()だとだめっぽい

const nowDate = DateTime.local().toFormat('yyyy-MM-dd HH:mm:ss');
const nowDate = DateTime.now().toFormat('yyyy-MM-dd HH:mm:ss');

オブジェクトを渡して取得
DateTime のすべての属性を設定できる。

dt = DateTime.fromObject({day: 22, hour: 12 }, { zone: 'America/Los_Angeles', numberingSystem: 'beng'})

ISO 8601で取得
20230215T224529+0900とか2023-02-15T22:45:29+09:00みたいなやつ。
下記のフォーマットでも取得可能。

2016
2016-05
201605
2016-05-25
20160525
2016-05-25T09
2016-05-25T09:24
2016-05-25T09:24:15
2016-05-25T09:24:15.123
2016-05-25T0924
2016-05-25T092415
2016-05-25T092415.123
2016-05-25T09:24:15,123
2016-W21-3
2016W213
2016-W21-3T09:24:15.123
2016W213T09:24:15.123
2016-200
2016200
2016-200T09:24:15.123
09:24
09:24:15
09:24:15.123
09:24:15,123
DateTime.fromISO("2017-05-15")          //=> May 15, 2017 at midnight
DateTime.fromISO("2017-05-15T08:30:00") //=> May 15, 2017 at 8:30

DB形式のフォーマットを渡して取得

DateTime.fromSQL( '2017-05-15 09:12:34' )

指定フォーマットを渡して取得
何でもいける。

dt = luxon.DateTime.fromFormat('今日は2023年2月20日です', '今日はyyyy年MM月dd日です');
ankou22ankou22

日付オブジェクトからデータ取得

文字列取得
ISO 8601 文字列を返却。

DateTime.now().toString(); //=> '2017-09-14T03:20:34.091-04:00'

ISO 8601で取得
これでもISOで取得出来る。

dt.toISO() //=> '2017-09-14T03:21:47.070-04:00'
dt.toISODate //=> '2017-09-14'

各項目ごとに取得

dt = DateTime.now();
dt.year     //=> 2017
dt.month    //=> 9
dt.day      //=> 14
dt.second   //=> 47
dt.weekday  //=> 4
dt.zoneName     //=> 'America/New_York'

プリセット

dt.toLocaleString()      //=> '9/14/2017'
dt.toLocaleString(DateTime.DATETIME_MED) //=> 'September 14, 3:21 AM'

下記を指定可能
https://moment.github.io/luxon/#/formatting

計算

var dt = DateTime.now();
dt.plus({ hours: 3, minutes: 2 });
dt.minus({ days: 7 });

開始、終了時を取得
「'2017-09-14T03:20:34'」だった場合

dt.startOf('day');      //=> '2017-09-14T00:00:00'
dt.endOf('hour');      //=> '2017-09-14T03:59:59'
このスクラップは2023/07/06にクローズされました