我有以下时间跨度来自MVC中的模型:
ng-init="loader()" data-ng-init="firstName='John'"
然后我有一个乘数
timeTaken = "00:01:00";
结果:00:03:00
计算这段时间的最佳方法是什么?
我不知道很多图书馆。我想把分秒,分钟和小时分开,将每一分为几秒,然后再将它们重新组合起来。
但是,我对很多部分进行了这种计算,看起来有点平凡。我能以更好的方式增加时间吗?
由于
答案 0 :(得分:3)
我正在组合我在多个页面中找到的片段。将hh:mm:ss转换为秒,乘以3x然后再转换为hh:mm:ss。
var hms = '00:01:00'; // your input string
var a = hms.split(':'); // split it at the colons
// minutes are worth 60 seconds. Hours are worth 60 minutes.
var seconds = (+a[0]) * 60 * 60 + (+a[1]) * 60 + (+a[2]);
var newSeconds= 3*seconds;
// multiply by 1000 because Date() requires miliseconds
var date = new Date(newSeconds * 1000);
var hh = date.getUTCHours();
var mm = date.getUTCMinutes();
var ss = date.getSeconds();
// If you were building a timestamp instead of a duration, you would uncomment the following line to get 12-hour (not 24) time
// if (hh > 12) {hh = hh % 12;}
// These lines ensure you have two-digits
if (hh < 10) {hh = "0"+hh;}
if (mm < 10) {mm = "0"+mm;}
if (ss < 10) {ss = "0"+ss;}
// This formats your string to HH:MM:SS
var t = hh+":"+mm+":"+ss;
document.write(t);
答案 1 :(得分:2)
首先,您可以将它们转换为秒,如下所示
var hms = "00:01:00";
var a = hms.split(':'); // split it at the colons
// minutes are worth 60 seconds. Hours are worth 60 minutes.
var seconds = (+a[0]) * 60 * 60 + (+a[1]) * 60 + (+a[2]);
var newSeconds=seconds * 3;
var t = new Date();
t.setSeconds(newSeconds);
console.log(t);
<强> DEMO 强>
<强>更新强>
要获得时间,请执行以下操作
var time=t.toTimeString().split(' ')[0]
<强> DEMO 强>
<强>更新强>
要获得一个小时的时间,您可以按照以下步骤
t.toTimeString().split(' ')[0].split(':')[0]
并以12小时格式获取小时,您可以执行以下操作:
var hour;
if(t.toTimeString().split(' ')[0].split(':')[0]>12)
hour=t.toTimeString().split(' ')[0].split(':')[0]-12;
else
hour=t.toTimeString().split(' ')[0].split(':')[0];
alert(hour);
<强> UPDATED DEMO 强>