🖊
長らく使われてきた Date
に変わるものとして Temporal
が提案されていましたが、その実装が Firefox の Nigthly ビルドに含まれるようになったようです。
大きな特徴として、Wall-Clock Time (その地域時間) と Exact Time (UTC) が分離しました。Plain
がつくものが Wall-Clock Time で、 Instant
が Exact Time です。
>> Temporal.Now.instant().toString()
← "2025-01-27T11:12:04.997Z"
>> Temporal.Now.plainDateTimeISO().toString()
← "2025-01-27T20:12:23.839"
また、期間を表す概念として Duration
があります。
>> Temporal.Duration.from({ hours: 1}).toString()
← "PT1H"
これまでライブラリで行っていたような操作も多くのメソッドが追加され、ネイティブでサポートされるようになります。
>> Temporal.PlainDate.from('2025-01-01').since(Temporal.Now.plainDateISO()).toString()
← "-P26D"
>> Temporal.PlainDateTime.from('2025-01-01').add('P26DT12H').toString()
← "2025-01-27T12:00:00"