【问题标题】:How would I round minutes to the nearest 5 minute mark in momentjs?我如何在momentjs中将分钟四舍五入到最接近的5分钟标记?
【发布时间】:2014-04-18 19:42:50
【问题描述】:

目前在我使用 moment.js 的网站上工作。我只想使用 jquery。

我得到当前分钟使用:

var minute = moment().minute();

但我想从最近的下一个 5 分钟开始设置闹钟。

假设现在是晚上 8:38,var minute 将是 38。我想将输入值设置为 40(即 40 分钟)

那么我的选择在哪里:

<select id="minuteID">
                    <option value="0">00</option>
                    <option value="5">05</option>
                    <option value="10">10</option>
                    <option value="15">15</option>
                    <option value="20">20</option>
                    <option value="25">25</option>
                    <option value="30">30</option>
                    <option value="35">35</option>
                    <option value="40">40</option>
                    <option value="45">45</option>
                    <option value="50">50</option>
                    <option value=55>55</option>
                </select>

我可以像这样输入项目:

var minute = moment().minute();
$("#minuteID option[value=" + minute + "]").prop("selected", "selected");

我如何做到这一点,而不是找到确切的选项分钟,而是以 5 的间隔(到最近的 5 标记)找到它。

【问题讨论】:

标签: javascript jquery momentjs


【解决方案1】:
minute = 5 * Math.round( minute / 5 );

随心所欲。

【讨论】:

  • 在更少的代码中,两者都很棒,但我必须接受这个以提高效率。也谢谢你
  • 如果minute 是 58 或 59 则不起作用。您必须改为使用 minute = (5 * Math.round( minute / 5 )) % 60;
  • @MaximeRossini 你说得对,我错过了 OP 将值从 0 限制为 55
【解决方案2】:
var minute = roundToFive(moment().minute());
$("#minuteID option[value=" + minute + "]").prop("selected", "selected");

function roundToFive(num) {
    var temp = num%5;
    if (temp<3)
         return num-temp;
    else
         return num+5-temp;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-25
    • 1970-01-01
    • 2015-12-19
    • 2011-01-22
    • 2022-01-02
    • 1970-01-01
    相关资源
    最近更新 更多