如何解决将毫秒添加到 date-fns 中的 formatDuration
我想使用 date-fns
和 React Native 将毫秒数转换为人类可读的格式。
我已设法进行转换:interval > duration > human readable format
并且一直到 秒 都可以正常工作,但省略了 毫秒。
当前代码:
const niceFormatDuration = (intervalInMs) => {
const milliseconds = Number.parseInt(intervalInMs % 1000,10);
const duration = intervalToDuration({ start: 0,end: intervalInMs });
return formatDuration(duration);
};
上面的代码工作正常,但缺少毫秒。我已经将毫秒添加到持续时间对象中:
duration["milliseconds"] = milliseconds;
但是 formatDuration
仍然只返回到秒。
还尝试向 milliseconds
添加新的 formatDuration
格式,但抛出错误。
{
format: [
"years","months","weeks","days","hours","minutes","seconds","milliseconds",// Not working with this line
],}
显然我可以在字符串的末尾手动添加毫秒,但这看起来很难看:
return `${formatDuration(duration)} ${milliseconds} ms`;
解决方法
来自 date-fns 文档:https://date-fns.org/v2.19.0/docs/Duration
Duration 对象不存储毫秒,所以这是不可能的。
向对象添加附加属性不会改变处理持续时间的函数的实现。函数根本不期望也不查找此属性。
您需要自己附加毫秒。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。