使用 javascript 的数字时间到可读持续时间

Digital time to readable duration using javascript

我正在使用 clockpicker 收集用户输入,这将给我一个字符串中的数字时间戳。

例如:

02:15

我想将其保留在数据库中,但在我看来将其打印为,使用此示例:

2h 15m 

不必要的零被删除,间隔开,并为 "hours" 添加了 "h",为 "minutes" 添加了 "m"。另外,如果没有指定小时数,我宁愿只获取分钟数,反之亦然,如果没有指定分钟数。

我似乎找到的所有示例都是关于使用 JavaScript 中的 "Date" 函数转换完整时间戳的。我似乎不能只用这个值来使用它,而且我对正则表达式很糟糕。

我想找到一种优雅的方式,也许是在呈现我的视图之前用一行正则表达式替换它。我不想使用任何额外的库。

感谢任何帮助!

反正我好像已经成功了。 它没有我希望的那么漂亮,但它确实有效,而且从技术上讲它是一行正则表达式。

  t = "00:05";
  t2 = "01:00";
  t3 = "12:10";
  t4 = "02:02";

  const replaceTime = (myString) => {
    myString = myString.replace(/0?([1-9]{0,}[0-9]):0?([1-9]{0,}[0-9])/g, 'h m').replace(/\s0m/g, '').replace(/0h\s/g, '');
    return myString;
  }

  console.log(replaceTime(t));
  console.log(replaceTime(t2));
  console.log(replaceTime(t3));
  console.log(replaceTime(t4));

returns:

5m
1h
12h 10m
2h 2m