Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/392.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 如何将时间js持续时间值限制为仅2位数?_Javascript_Momentjs - Fatal编程技术网

Javascript 如何将时间js持续时间值限制为仅2位数?

Javascript 如何将时间js持续时间值限制为仅2位数?,javascript,momentjs,Javascript,Momentjs,我使用的是根据距离/速度计算的日期时间。我也在使用。当我将值传递给矩.时长并将其格式化时,一些值超过2位,即 39:3452:98762 我想将其正确格式化为HH:mm:ss。这是我的密码 var point1Time = 19.188019795; var d1 = moment.duration(point1Time, 'hours'); var d1Hours = d1.format('HH'); var d1Mins = d1.format('mm', {forceLength: t

我使用的是根据距离/速度计算的日期时间。我也在使用。当我将值传递给
矩.时长
并将其格式化时,一些值超过2位,即

39:3452:98762
我想将其正确格式化为
HH:mm:ss
。这是我的密码

var point1Time = 19.188019795;
var d1 = moment.duration(point1Time, 'hours');

var d1Hours = d1.format('HH');
var d1Mins = d1.format('mm', {forceLength: true });
var d1Secs = d1.format('ss', {forceLength: true });
正如您所看到的
点1time
(为了本例,我输入了一个数字)是英里/速度,然后我将该值作为
持续时间
小时
的形式传递给
时刻。之后,我尝试使用
格式分离
HH:mm:ss
。返回的值类似于
d1Hours:19
d1Mins:1151
d1Secs:69076

我认为添加
forceLength
将有助于将数字减少到两个,但它不起作用,因为我看不出在哪里定义该限制


有人可以帮忙吗?

您可以将持续时间转换为秒,然后很容易找到您想要的格式

var d1 = moment.duration(point1Time, 'hours');
var asSecs = d1.asSeconds()

var HHMMSS = secondsToHHMMSS(asSecs)


function pad(num) {
    return ("0"+num).slice(-2);
}

function secondsToHHMMSS(secs) {
    var hours = Math.floor(secs / 3600);
    secs = secs%3600;
    var minutes = Math.floor(secs / 60);
    secs = secs%60;
    return pad(hours)+":"+pad(minutes)+":"+pad(secs);
}

您可以使用
'HH:mm:ss'
作为方法中的模板来获得所需的输出

d1.format('mm')
d1.format('ss')
提供和的输出,而我认为您需要和的输出

这里有一个活样本:

var point1Time=19.188019795;
var d1=时刻持续时间(point1Time,“小时”);
console.log(d1.format('HH:mm:ss'));
console.log(d1.minutes(),d1.asMinutes());
console.log(d1.seconds(),d1.asSeconds())

这正是我想要的,非常完美,谢谢。