使用 Moment 库,将分钟转换为天、小时和分钟的正确语法是什么?

Using Moment library, what is the correct syntax to convert minutes into days hours and minutes that also formats for singular vs plural?

非常感谢任何帮助。我一直在努力寻找这个问题的解决方案:

  1. 使用 Moment 库,将分钟转换为天、小时和分钟的正确语法是什么?

预期:2009 minutes 将变为:1 day 9 hours 29 minutes

这里是错误的代码:

function durationFormatter(minutes): string {
  const ms = minutes * 60000;
  const days = Math.floor(ms / 8.64e7);
  const msOnLastDay = ms - days * 8.64e7;

  return moment.utc(msOnLastDay)
    .format("D [days] H [hours] M [minutes]");
}

console.log('durationFormatter -->', durationFormatter(2009));

以上输出:

1 days 9 hours 1 minutes 这是错误的

我也用这个语法尝试了另一个时刻包moment-duration-format:(per docs = https://github.com/jsmreese/moment-duration-format#basics

import momentDurationFormatSetup from 'moment-duration-format';

function durationFormatter(minutes): string {
  momentDurationFormatSetup();
  return moment.duration(minutes, "minutes").format();
}

但是我得到这个错误: 属性 'format' 在类型 'Duration'

上不存在

我如何将它与包一起使用?

你可以使用优秀的库humanizeDuration,只需传递:

humanizeDuration(2009 * 60 * 1000, { delimiter: ' '})

将输出您想要的 - 1 天 9 小时 29 分钟。

注意 - 您传递的是毫秒,因此在传递给 humanizeDuration

之前,您需要将分钟参数乘以 60,000