【问题标题】:Get the percent of time elapsed between two javascript dates获取两个 javascript 日期之间经过的时间百分比
【发布时间】:2011-06-08 01:02:13
【问题描述】:

我试图找出一个学年还剩多少天,并将其作为 jQuery UI 进度条返回。

jQuery UI 进度条只占百分比。给定今天的日期,我如何才能找到我在两个提供的日期之间的时间跨度中的百分比?

【问题讨论】:

    标签: javascript jquery user-interface date time


    【解决方案1】:

    示例: http://jsfiddle.net/FLaJM/4/

    var start = new Date(2005,0,1),
        end = new Date(2021,0,1),
        today = new Date();
    
    alert( Math.round(100-((end - start) * 100 ) / today) + '%' );
    

    或者如果你想要剩余的百分比:

    示例: http://jsfiddle.net/FLaJM/3/

    alert( Math.round(((end - start) * 100 ) / today) + '%' );
    

    【讨论】:

    • 我需要倒数:someDate = start.getTime() + ((end.getTime() - start.getTime()) * percent)。
    【解决方案2】:

    如果您使用的是MomentJS,我强烈建议您使用 Javascript 日期内容,您可以这样做:

    var percentOfDayRangeComplete = function(start, end) {
        var now = moment();
        start = start || moment(now).startOf('day');
        end = end || moment(now).endOf('day');
        var totalMillisInRange = end.valueOf() - start.valueOf();
        var elapsedMillis = now.valueOf() - start.valueOf();
        // This will bound the number to 0 and 100
        return Math.max(0, Math.min(100, 100 * (elapsedMillis / totalMillisInRange)));
    };
    

    jsFiddle 看看它的实际应用...

    【讨论】:

      【解决方案3】:

      最简单的方法(算法 - 您可以将代码作为练习)是:

      1. 确定您在学年中的天数(大多数公立学校通常约为 185 天)
      2. 计算当前日期和课程结束之间剩余的上学天数(确保忽略周末、节假日、在职日等,因为这些不属于 185 的一部分)。
      3. 从第二步中取出值并将其分成第一步。这会给你你的百分比。
      4. 在 jQuery UI 进度条中显示。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2019-08-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多