【问题标题】:How to convert minutes to time(hh:mm:ss)?如何将分钟转换为时间(hh:mm:ss)?
【发布时间】:2016-12-30 06:03:06
【问题描述】:

我的问题是: 如何将分钟转换为时间(hh:mm:ss)?

我有一个价值:

decimalMinuteString="1.1783471074380165"

预期输出为:“00:01:10”

javascript/jquery怎么办?

谢谢

【问题讨论】:

标签: javascript jquery


【解决方案1】:

我需要将 X 分钟转换为 HH:MM(小时:分钟),我使用以下代码来完成此操作:

MINUTES = X; //some integer

var m = MINUTES % 60;

var h = (MINUTES-m)/60;

var HHMM = h.toString() + ":" + (m<10?"0":"") + m.toString();

【讨论】:

  • 在上面的例子中 var m = MINUTES / 60 应该是 var m = MINUTES % 60;
【解决方案2】:

powtac 在另一个问题中给出了一个非常简洁的答案,其中需要将秒数转换为相同的格式。

更改他提供的解决方案以适应您的问题,以下原型函数可用于将分钟转换为 HH:MM:SS 字符串格式。

String.prototype.minsToHHMMSS = function () {
    var mins_num = parseFloat(this, 10); // don't forget the second param
    var hours   = Math.floor(mins_num / 60);
    var minutes = Math.floor((mins_num - ((hours * 3600)) / 60));
    var seconds = Math.floor((mins_num * 60) - (hours * 3600) - (minutes * 60));

    // Appends 0 when unit is less than 10
    if (hours   < 10) {hours   = "0"+hours;}
    if (minutes < 10) {minutes = "0"+minutes;}
    if (seconds < 10) {seconds = "0"+seconds;}
    return hours+':'+minutes+':'+seconds;
}

// Use it as following:
myDecimalNumber.minsToHHMMSS();

查看下面sn-p中的工作代码:

String.prototype.minsToHHMMSS = function () {
    var mins_num = parseFloat(this, 10); // don't forget the second param
    var hours   = Math.floor(mins_num / 60);
    var minutes = Math.floor((mins_num - ((hours * 3600)) / 60));
    var seconds = Math.floor((mins_num * 60) - (hours * 3600) - (minutes * 60));

    // Appends 0 when unit is less than 10
    if (hours   < 10) {hours   = "0"+hours;}
    if (minutes < 10) {minutes = "0"+minutes;}
    if (seconds < 10) {seconds = "0"+seconds;}
    return hours+':'+minutes+':'+seconds;
}

var decimalMinuteString = '1.1783471074380165';

var timeString = decimalMinuteString.minsToHHMMSS();

var input = document.getElementById('input');
var output = document.getElementById('output');
input.innerText = decimalMinuteString;
output.innerText = timeString;
<p>
  Input: <span id="input"></span> 
</p>
<p>
  Output: <span id="output"></span>  
</p>

如果此解决方案对您有所帮助,请先投票powtac's answer,因为它是答案的基础

【讨论】:

  • 然而,它不适用于大值。例如:对于 63240.2208 它显示 1054:00:13
  • @user8795381 它按预期工作。如果你想要几天和几周,你应该延长 sn-p 或为此目的写一个。
【解决方案3】:

一行是:

new Date(minutes * 60 * 1000).toISOString().substr(11, 8);

【讨论】:

  • 分钟 > 60*24 无效
猜你喜欢
  • 2014-09-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-12-29
  • 1970-01-01
  • 2023-03-14
  • 2013-07-30
相关资源
最近更新 更多