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())代码>
这正是我想要的,非常完美,谢谢。