5日ごと のような表現を date-fns で対応するメモです。
処理の流れ
このような流れで 5 日ごと のような表現を date-fns で対応しています。
- addDays で対象の日付から 5 日進める
- 返ってきた Date オブジェクトに、さらに 5 日進める処理をすれば、ちゃんと進んでいく
といった流れで、5 日ごと進めつつ未来のデータを取得したかったり、表示したかったりで重宝しています。
プログラム
const addDays = require('date-fns/addDays'); const parse = require('date-fns/parse'); const format = require('date-fns/format'); // UTC の 2022-06-21 取得 let sampleDay = parse('2022-06-21 00:00:00Z', 'yyyy-MM-dd HH:mm:ssX', new Date()); console.log('UTC の 2022-06-21 取得'); console.log(format(sampleDay,'yyyy-MM-dd HH:mm:ss')); // 2022-06-21 09:00:00 // 5 日後にする 1 回目 console.log('5 日後にする 1 回目'); sampleDay = addDays( sampleDay , 5); console.log(format(sampleDay,'yyyy-MM-dd HH:mm:ss')); // 2022-06-26 09:00:00 // 5 日後にする 2 回目 console.log('5 日後にする 2 回目'); sampleDay = addDays( sampleDay , 5); console.log(format(sampleDay,'yyyy-MM-dd HH:mm:ss')); // 2022-07-01 09:00:00 // 5 日後にする 3 回目 console.log('5 日後にする 3 回目'); sampleDay = addDays( sampleDay , 5); console.log(format(sampleDay,'yyyy-MM-dd HH:mm:ss')); // 2022-07-06 09:00:00