⏱️

LuxonのdiffNow()の正負を毎回迷う件

2023/06/22に公開

TL; DR

a.diff(b) のとき、

  • b を起点に a が過去なら
  • b を起点に a が未来なら

a - b のイメージ)

a.diffNow() のとき、b = DateTime.now() になる感じ。

const yesterday = DateTime.fromISO('2023-06-21T09:00:00.000')
const today = DateTime.fromISO('2023-06-22T09:00:00.000')
const tomorrow = DateTime.fromISO('2023-06-23T09:00:00.000')

yesterday.diff(today).as('days') // -1
today.diff(today).as('days') // 0
tomorrow.diff(today).as('days') // 1

yesterday.diffNow() // 負
tomorrow.diffNow() // 正

いらない本文

TypeScript(JavaScript)で時刻を扱うときほぼ必ずLuxonを使っていて、diffNow() が便利なのでよく使うんですが、if文の条件を < にするのか > にするのか迷ってはどこかにプレイグラウンド的なものを用意して実行してみる…というのを毎回やっている気がしたので、自分のためにメモを残したかったのです。

もし同じようなことをしている方がいたら、この記事をブックマークでもして心の支えにしていただければと思います。

GitHubで編集を提案

Discussion