Open riefuchi220 opened 5 months ago
` function roundDownToNearestInterval(date, interval) { // 新しいDateオブジェクトを作成(元のDateオブジェクトを変更しないように) const newDate = new Date(date.getTime());
// 分を取得 const minutes = newDate.getMinutes();
// 切り捨ての間隔を設定 let roundedMinutes; if (interval === 1) { // 5分間隔に切り捨て roundedMinutes = Math.floor(minutes / 5) 5; } else { // 10分間隔に切り捨て roundedMinutes = Math.floor(minutes / 10) 10; }
// 切り捨てた分をセット newDate.setMinutes(roundedMinutes); newDate.setSeconds(0); // 秒を0にセット newDate.setMilliseconds(0); // ミリ秒を0にセット
return newDate; }
// テスト例 const date1 = new Date('2024-05-24T00:08:00'); const date2 = new Date('2024-05-24T00:11:00'); const date3 = new Date('2024-05-24T00:15:00');
console.log(roundDownToNearestInterval(date1, 1)); // 2024-05-24T00:05:00.000Z console.log(roundDownToNearestInterval(date2, 1)); // 2024-05-24T00:10:00.000Z console.log(roundDownToNearestInterval(date1, 2)); // 2024-05-24T00:00:00.000Z console.log(roundDownToNearestInterval(date2, 2)); // 2024-05-24T00:10:00.000Z console.log(roundDownToNearestInterval(date3, 2)); // 2024-05-24T00:10:00.000Z `
` function roundDownToNearestInterval(date, interval) { // 新しいDateオブジェクトを作成(元のDateオブジェクトを変更しないように) const newDate = new Date(date.getTime());
// 分を取得 const minutes = newDate.getMinutes();
// 切り捨ての間隔を設定 let roundedMinutes; if (interval === 1) { // 5分間隔に切り捨て roundedMinutes = Math.floor(minutes / 5) 5; } else { // 10分間隔に切り捨て roundedMinutes = Math.floor(minutes / 10) 10; }
// 切り捨てた分をセット newDate.setMinutes(roundedMinutes); newDate.setSeconds(0); // 秒を0にセット newDate.setMilliseconds(0); // ミリ秒を0にセット
return newDate; }
// テスト例 const date1 = new Date('2024-05-24T00:08:00'); const date2 = new Date('2024-05-24T00:11:00'); const date3 = new Date('2024-05-24T00:15:00');
console.log(roundDownToNearestInterval(date1, 1)); // 2024-05-24T00:05:00.000Z console.log(roundDownToNearestInterval(date2, 1)); // 2024-05-24T00:10:00.000Z console.log(roundDownToNearestInterval(date1, 2)); // 2024-05-24T00:00:00.000Z console.log(roundDownToNearestInterval(date2, 2)); // 2024-05-24T00:10:00.000Z console.log(roundDownToNearestInterval(date3, 2)); // 2024-05-24T00:10:00.000Z `