使用 JavaScript 将时间舍入到最接近的 15 分钟

使用 JavaScript 将时间舍入到最接近的 15 分钟

Round time to the nearest 15 Minutes using JavaScript

将时间四舍五入到最接近的 15 分钟:

  1. 将 15 分钟转换为毫秒。
  2. 将日期值(以毫秒为单位)除以转换结果。
  3. 将结果传递给Math.round()函数。
  4. 乘以 15 分钟内的毫秒数。
索引.js
function roundToNearest15(date = new Date()) { const minutes = 15; const ms = 1000 * 60 * minutes; // 👇️ replace Math.round with Math.ceil to always round UP return new Date(Math.round(date.getTime() / ms) * ms); } // 👇️ Mon Jan 24 2022 09:00:00 (minutes are 7) console.log(roundToNearest15(new Date(2022, 0, 24, 9, 7, 00))); // 👇️ Mon Jan 24 2022 09:15:00 (minutes are 8) console.log(roundToNearest15(new Date(2022, 0, 24, 9, 8, 00)));


在将示例记录到控制台时,
我们使用了
Date()构造函数。我们传递的参数是:year, month(January = 0, February = 1, etc), day of month, hours,
minutes, seconds

我们创建了一个可重复使用的函数,将日期四舍五入到最接近的 15 分钟。

该函数将Date对象作为参数,如果未提供参数,则使用当前日期和时间。

如果您总是想向上舍入,请将Math.round()函数
替换为
Math.ceil().

ms变量存储以15分钟为单位的毫秒数。

getTime方法返回自 Unix 纪元以来的

毫秒数。

我们将结果除以以分钟为单位的毫秒数,然后使用Math.round
函数
15舍入到最接近的整数

以下是一些Math.round工作原理示例。

索引.js
console.log(Math.round(4.49)); // 👉️ 4 console.log(Math.round(4.5)); // 👉️ 5

该函数将数字向上或向下舍入到最接近的整数。

如果数字为正且小数部分大于或等于,则四舍五入为下一个更高的绝对值。 0.5

如果数字为正且其小数部分小于0.5,则四舍五入为较低的绝对值。

如果您总是想四舍五入到下一15分钟,请改用
Math.ceil
函数。

索引.js
function roundToNearest15(date = new Date()) { const minutes = 15; const ms = 1000 * 60 * minutes; return new Date(Math.ceil(date.getTime() / ms) * ms); } // 👇️ Mon Jan 24 2022 09:15:00 (minutes are 7) console.log(roundToNearest15(new Date(2022, 0, 24, 9, 7, 00))); // 👇️ Mon Jan 24 2022 09:15:00 (minutes are 8) console.log(roundToNearest15(new Date(2022, 0, 24, 9, 8, 00)));

Math.ceil函数返回大于或等于提供的数字的最小整数。

索引.js
console.log(Math.ceil(4.1)); // 👉️ 5 console.log(Math.ceil(4.0001)); // 👉️ 5

简而言之,如果小数点后有任何内容,则该数字将四舍五入为下一个整数,否则返回该数字。

最后一步是将调用Math.roundor的值乘以Math.ceil
以分钟为单位的毫秒数,
15并将结果传递给Date()构造函数。

roundToNearest15函数返回一个新Date对象,其分钟数四舍五入到最接近的15.