5日ごと のような表現を date-fns で対応するメモ

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