vue+moment将分钟调整为5的倍数(向下取整)

vue+moment将分钟调整为5的倍数(向下取整)

将时间调整为5的倍数的需求,可以通过计算分钟数并取整到最近的5的倍数来实现。以下是修改后的代码:

javascript 复制代码
getSkSqRList() {
  let stm = '';
  let etm = '';

    stm = moment().subtract(6, 'hours').format('YYYY-MM-DD HH:mm');
    etm = moment().format('YYYY-MM-DD HH:mm');

  // 处理时刻类型:将分钟调整为5的倍数(向下取整)
    // 处理开始时间stm
    const stmMoment = moment(stm);
    const stmMinutes = stmMoment.minute(); // 获取当前分钟数
    const adjustedStmMinutes = Math.floor(stmMinutes / 5) * 5; // 计算5的倍数(向下取整)
    stmMoment.minute(adjustedStmMinutes);
    stm = stmMoment.format('YYYY-MM-DD HH:mm');
    
    // 处理结束时间etm
    const etmMoment = moment(etm);
    const etmMinutes = etmMoment.minute();
    const adjustedEtmMinutes = Math.floor(etmMinutes / 5) * 5;
    etmMoment.minute(adjustedEtmMinutes);
    etm = etmMoment.format('YYYY-MM-DD HH:mm');

  
  // 后续可以使用stm和etm进行请求等操作
  // ...
}

代码说明:

. 新增时刻处理逻辑

  • 通过minute()方法获取当前分钟数
  • 计算调整后的分钟数:Math.floor(分钟数 / 5) * 5(例如31分钟 → 30分钟,17分钟 → 15分钟)
  • 用调整后的分钟数更新时间,并重新格式化为字符串
    向下取整规则:严格按照注释要求,如17:31调整为17:30,17:34调整为17:30,17:35保持17:35

如果需要向上取整(例如17:31 → 17:35),可以将Math.floor改为Math.ceil,但根据注释描述,当前代码采用向下取整更符合需求。

相关推荐
码哥DFS8 分钟前
构造函数、实例对象、对象原型 ----三者关系
开发语言·javascript·原型模式
满栀58527 分钟前
vue动态路由效果
前端·javascript·vue.js·前端框架·vue
心运软件2 小时前
SpringBoot+ Vue校园社团管理平台的完整架构设计
vue.js·后端
jjw_zyfx2 小时前
css vue vite实现闪烁的呼吸效果
javascript·css·vue.js
sunly_2 小时前
React useActionState 的用法详解
前端·javascript·react.js
cyadyx3 小时前
【Three.js】Three.js 中加载 3D 模型
前端·javascript·3d
汉堡大王95273 小时前
前端工程师 TypeScript 上手指南:一条清晰的从入门到精通路线
前端·javascript·react.js
wear工程师3 小时前
防抖为什么会失效?React 面试里的闭包和定时器
javascript·react.js
浅水壁虎3 小时前
vue基础(第四章 Pinia)
前端·javascript·vue.js
张元清4 小时前
React useEventSource Hook:自带断线重连的 Server-Sent Events (2026)
javascript·react.js