dayjs
https://gyazo.com/7f3acbfbe955f8dcd2bab7368592bdde
2.8KBな日付管理コンポーネント
localeの確認
code:ts
console.log(dayjs().format('dddd, MMMM D, YYYY h:mm A'));
デフォルトではFriday, September 18, 2020 1:52 PMのように英語で表示される
以下の設定をすると金曜日, 9月 18, 2020 1:52 午後となる
code:ts
import dayjs from 'dayjs';
import 'dayjs/locale/ja';
dayjs.locale('ja');
pluginの追加
型を考えると非直感的になる
code:ts
import isBetween from 'dayjs/plugin/isBetween';
const f = () => {
dayjs.extend(isBetween);
const isPublish = dayjs(new Date()).isBetween(publishStartAt, publishEndAt);
}
型
dayjs(date).format('..')とかやった時に、dateの値がおかしいと、"Invalid Date"になることに注意
型が変わらずstringなので気にしていないと気づけないmrsekut.icon
startOf, endOf
0:00:00~23:59:59とか
code:ts
console.log(dayjs('2019-01-10 07:30:20').startOf('day').format()); // '2019-01-10T00:00:00+09:00'
console.log(dayjs('2019-01-10 07:30:20').endOf('day').format()); // '2019-01-10T23:59:59+09:00'
dayjs().isSame(dayjs('2011-01-01')って何とsameなん?
dayjs()の部分がDayjs型のobjectてことか
code:ts
const day = dayjs(なんか)
day.isSame(..)
isToday
これごときでplugin追加したくない
code:ts
const isToday = day.isSame(new Date(), 'day');
code:_
今日.isAfter(明日) // false
明日.isAfter(今日) // true
fromNow
dayjs.locale('ja');があれば日本語にはなる
もっと細かく表示を切り替える
例えばdefaultでは「22時間前」は「1日前」と表示される
この辺のカスタマイズも可能
pluginを追加したときに、tsエラーが出るのはどう解決する