如何将'PT6H52M38S'转换为'h:mm:ss'格式

时间:2019-02-22 09:39:39

标签: javascript jquery angular angular-pipe angular-date-format

我正在使用Clockify API集成。它返回了一个像PT6H52M38S这样的持续时间。那是6小时52分38秒。我想将PT6H52M38S显示为6:52:38

我已经使用过类似{{item.timeInterval.duration | date: 'h:mm:ss}}的日期管道,但是它引发了错误。

我不知道如何将PT6H52M38S转换为6:52:38格式。

1 个答案:

答案 0 :(得分:0)

日期管道仅接受时间戳或日期实例。

在您的情况下,您需要使用选择的逻辑来获取值。我会使用正则表达式和数组的组合。

这是一个transform函数,您可以在要创建的管道中使用它:

const clockify = 'PT6H52M38S';

function transform(value) {
  const [hours, minutes, seconds] = value
    .replace('PT', '')
    .split(/[HMS]/);
  return `${hours}:${minutes}:${seconds}`;
}

console.log(transform(clockify));