【问题标题】:How to convert provided number of hours into days hours minutes in javascript?如何在javascript中将提供的小时数转换为天小时分钟?
【发布时间】:2016-11-06 15:02:47
【问题描述】:

我有一个从 0 到任何时间的输入时间,例如

25 小时...我需要以天小时和分钟为单位的输出:1 天 1 小时 0 分钟

我已经尝试过,它会返回天数,但帮助我转换为天数小时和分钟 var flag_hours = 25;

if(flag_hours >=24)
{
     var totaldays = flag_bookbefore/24;
     alert(totaldays);
}

输出为:1.0416666666666667

提前致谢!

【问题讨论】:

  • Math.floor(number) 返回最接近的整数。在您的示例中,它将返回 1,即一天
  • Division 将为您提供天数,其余的您可以使用modulo operator 计算剩余的小时数和分钟数。

标签: javascript datetime web


【解决方案1】:

试试这个功能:它让你可以分别访问天的小时和分钟。

function SplitTime(numberOfHours){
    var Days=Math.floor(numberOfHours/24);
    var Remainder=numberOfHours % 24;
    var Hours=Math.floor(Remainder);
    var Minutes=Math.floor(60*(Remainder-Hours));
    return({"Days":Days,"Hours":Hours,"Minutes":Minutes})
}

var hours=27.3
    var timeResult=SplitTime(hours)
    console.log("27.3 hours translate to  "+timeResult.Days+"Days "+timeResult.Hours+"Hours and "+timeResult.Minutes+"Minutes.")

【讨论】:

    【解决方案2】:

    试试这个:

    var days = Math.floor(flag_hours / 24);
    var hours = Math.floor(flag_hours) % 24;
    var minutes = (flag_hours - Math.floor(flag_hours)) * 60;
    

    未经测试,可能是非常错误的。

    【讨论】:

    • 我不确定模运算符如何与非整数一起使用,您可能需要考虑到这一点并稍微更新代码。除此之外,我喜欢这个答案
    【解决方案3】:

    试试这个:

    var hour = 47.5;
    var day = 0;
    var minute = parseInt((hour % 1)*60);
    if (hour>24){
        day = parseInt(hour / 24);
        hour = parseInt(hour % 24);
    }else{
        hour = parseInt(hour);
    }
    alert (day);
    alert(hour);
    alert(minute);
    

    查看jsFiddle

    【讨论】:

    • 如果提供的小时数是整数形式,那么是的,分钟数总是为零。但是如果输入是十进制数,那么你可以转换。例如 0.5 小时 = 30 分钟
    • OP 从来没有说过输入必须是整数,所以不需要更新问题
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-02-14
    • 1970-01-01
    • 1970-01-01
    • 2014-12-01
    • 2019-02-22
    • 2013-03-07
    • 1970-01-01
    相关资源
    最近更新 更多