如何使用javascript倍增时间?

时间:2015-04-30 11:46:27

标签: javascript jquery asp.net-mvc

我有以下时间跨度来自MVC中的模型:

ng-init="loader()" data-ng-init="firstName='John'"

然后我有一个乘数

timeTaken = "00:01:00";

结果:00:03:00

计算这段时间的最佳方法是什么?

我不知道很多图书馆。我想把分秒,分钟和小时分开,将每一分为几秒,然后再将它们重新组合起来。

但是,我对很多部分进行了这种计算,看起来有点平凡。我能以更好的方式增加时间吗?

由于

2 个答案:

答案 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);

JSFiddle

答案 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