Closed5
Luxonまとめ
毎度忘れるので自分用にざっくりまとめる
指定のフォーマットから日付オブジェクトを取得できたり、
逆に日付オブジェクトを指定のフォーマットに変換できたりする。
import { DateTime } from 'luxon';
日付オブジェクトを取得
引数を指定して取得
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日です');
日付オブジェクトからデータ取得
文字列取得
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'
下記を指定可能
計算
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'
.diffNow('seconds')
このスクラップは2023/07/06にクローズされました