首页 > 解决方案 > 如何对数组中的时间字符串求和?

问题描述

假设,我有一个不同时间字符串的数组。

let a: any = ["7:20", "5:50", "6:30"];

我想总结一下这些 HH:mm 时间字符串。我正在使用 Ionic 4 (Angular) 构建一个应用程序。我已经为这些使用了 momentjs。但是,不幸的是,我找不到任何解决方案。

更新: 预期结果: 7: 20 + 5:50 + 6:30 = 19:40 (HH:33)

标签: javascriptangularionic-framework

解决方案


您可以将时间视为可以总结的持续时间:

const any = ['7:20', '7:52', '5:03', '1:01', '9:02', '6:00'];

const sum = any.reduce((acc, time) => acc.add(moment.duration(time)), moment.duration());

console.log([Math.floor(sum.asHours()), sum.minutes()].join(':'));
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.23.0/moment.min.js"></script>


推荐阅读