Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
获取两个javascript日期之间经过的时间百分比_Javascript_Jquery_User Interface_Date_Time - Fatal编程技术网

获取两个javascript日期之间经过的时间百分比

获取两个javascript日期之间经过的时间百分比,javascript,jquery,user-interface,date,time,Javascript,Jquery,User Interface,Date,Time,我试图找出一个学年还剩多少天,并将其作为jQueryUI进度条返回 jQuery UI进度条仅采用百分比。考虑到今天的日期,我如何才能找到我在两个提供的日期之间的时间跨度的百分比?最简单的方法(从算法上——你可以把代码作为练习)是: 确定学年的天数(大多数公立学校通常为185天) 计算从当前日期到课程结束之间剩余的上学天数(确保忽略周末、假期、在职天数等,因为这些不是课程的一部分) 取第二步中的值并将其分为第一步。这将给你你的百分比 在jQueryUI进度栏中显示 示例: 或者,如果您想要剩余的

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

jQuery UI进度条仅采用百分比。考虑到今天的日期,我如何才能找到我在两个提供的日期之间的时间跨度的百分比?

最简单的方法(从算法上——你可以把代码作为练习)是:

  • 确定学年的天数(大多数公立学校通常为185天)
  • 计算从当前日期到课程结束之间剩余的上学天数(确保忽略周末、假期、在职天数等,因为这些不是课程的一部分)
  • 取第二步中的值并将其分为第一步。这将给你你的百分比
  • 在jQueryUI进度栏中显示

  • 示例:

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


    示例:

    如果您正在使用,我强烈建议您使用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)));
    };
    

    要看到它的作用…

    我需要相反的结果:someDate=start.getTime()+((end.getTime()-start.getTime())*百分比)。
    alert( Math.round(((end - start) * 100 ) / today) + '%' );
    
    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)));
    };