使用 Moment 库,将分钟转换为天、小时和分钟的正确语法是什么?
Using Moment library, what is the correct syntax to convert minutes into days hours and minutes that also formats for singular vs plural?
非常感谢任何帮助。我一直在努力寻找这个问题的解决方案:
- 使用
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
非常感谢任何帮助。我一直在努力寻找这个问题的解决方案:
- 使用
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