将两个持续时间与Datejs或Momentjs一起添加,并将它们格式化为" HH:mm:ss"

时间:2016-08-22 20:53:12

标签: javascript momentjs datejs

我想在一起添加2个持续时间,例如:     00:04:00 + 07:23:00 = 07:27:00

    var std_count = "00:06:00";
    var std_create = "07:23:00";

    var time_2 = moment.duration(std_count, "HH:mm:ss");
    var time_3 = moment.duration(std_create, "HH:mm:ss");
    var final = time_2.add(time_3, "HH:mm:ss");

PS。我无法在瞬间js或日期js中找到这种添加。提前谢谢。

2 个答案:

答案 0 :(得分:1)

    var std_count = "00:04:00";
    var std_create = "07:23:00";
    var final_hours = moment.duration(std_count, "HH:mm:ss").add(std_create, "HH:mm:ss").hours();
    var final_minutes = moment.duration(std_count, "HH:mm:ss").add(std_create, "HH:mm:ss").minutes();
    var final_seconds = moment.duration(std_count, "HH:mm:ss").add(std_create, "HH:mm:ss").seconds();

    var final_calc = final_hours*3600+final_minutes*60+final_seconds;

    alert(moment.duration(final_calc, "seconds").format("HH:mm:ss"));

    Output : "07:27:00"

PS。必须包含moment.js和moment-duration-format.js。

答案 1 :(得分:0)

使用包含 time.js DateJS,您可以利用 TimeSpan 类。

示例

var std_count = Date.parse("00:06:00").getTimeOfDay();
var std_create = Date.parse("07:23:00").getTimeOfDay();

var final = std_count.add(std_create);

final.toString("HH:mm:ss");
// "07:29:00"

或者你可以用一个链式序列来解决这个问题:

Date.parse("00:06:00")
    .getTimeOfDay()
    .add(Date.parse("07:23:00").getTimeOfDay())
    .toString("HH:mm:ss");

希望这有帮助。