时差并在javascript中转换为小时和分钟

Dha*_*a.k 6 javascript datetime date

我的时间值如下:starttime like:09:00:00,endTime like:10:00:00; 这里不需要日期值.所以这个值需要计算差异并转换成小时和分钟,秒.

我试过了:

var test = new Date().getTime(startTime); 
var test1 = new Date().getTime(endTime);
var total = test1 - test;
Run Code Online (Sandbox Code Playgroud)

有的时候我得到NaN1111111一些数字格式.

我怎样才能转换为HH:MM:SS,或任何其他寻找时差的方法.

She*_*tJS 13

您可以采用时间值的差异:

var diff = test1.getTime() - test.getTime(); // this is a time in milliseconds
var diff_as_date = new Date(diff);
diff_as_date.getHours(); // hours
diff_as_date.getMinutes(); // minutes
diff_as_date.getSeconds(); // seconds
Run Code Online (Sandbox Code Playgroud)

  • 我遇到的另一个问题是 `new Date(diff)` 返回的日期带有时区偏移量(在我的例子中是 3 小时)。我使用了`getUTCHours()`、`getUTCMinutes()` 和`getUTCSeconds()` 来获得正确的值。 (4认同)

小智 5

var startTime = "09:00:00";
var endTime = "10:00:00";

var startDate = new Date("January 1, 1970 " + startTime);
var endDate = new Date("January 1, 1970 " + endTime);
var timeDiff = Math.abs(startDate - endDate);

var hh = Math.floor(timeDiff / 1000 / 60 / 60);
if(hh < 10) {
    hh = '0' + hh;
}
timeDiff -= hh * 1000 * 60 * 60;
var mm = Math.floor(timeDiff / 1000 / 60);
if(mm < 10) {
    mm = '0' + mm;
}
timeDiff -= mm * 1000 * 60;
var ss = Math.floor(timeDiff / 1000);
if(ss < 10) {
    ss = '0' + ss;
}

alert("Time Diff- " + hh + ":" + mm + ":" + ss);
Run Code Online (Sandbox Code Playgroud)