javascript - Moment JS持续时间人性化更精确

标签 javascript date momentjs

我的片刻持续时间为 14 秒。

const duration = moment.duration(end.diff(startTime));

如果我想将此持续时间显示为格式化字符串,我可以使用 .humanize()

duration.humanize(true)
// in a few seconds

这很好用,但是有没有一种方法可以暂时将其格式化为精确持续时间,例如 14 秒 或更长的持续时间,在 2 天 5 小时内 而不是 在 2 天内

最佳答案

您可以自定义相对时间函数的输出,例如 humanize()使用 relativeTime updateLocalerelativeTimeThreshold 的键.

我不知道一般持续时间的预期输出是什么,但您可以使用以下代码在 14 秒内 获得 14 秒的持续时间:

const startTime = moment();
const end = moment().add(14, 'seconds');
const duration = moment.duration(end.diff(startTime));
console.log( duration.humanize(true) );

moment.relativeTimeThreshold('ss', 60);
moment.updateLocale('en', {
  relativeTime : {
    s: function (number, withoutSuffix, key, isFuture){
      return number + ' seconds';
    }
  }
});

console.log( moment.duration(end.diff(startTime)).humanize(true) );
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.22.2/moment.min.js"></script>

你也可以看看thisthis类似的问题。

关于javascript - Moment JS持续时间人性化更精确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53828729/

相关文章:

javascript - 将插件方法添加到 Flow 中的 Moment.js 声明中?

javascript - 将附件添加到 Trello 卡片

Javafx 使用日期选择器

linux - ls - 如何仅将文件名、日期(ISO 8601)输出到 CSV?

javascript - 使用 momentjs 保存为 UTC 并显示为本地时间

javascript - Bootstrap Datetimepicker 始终将日期设置为 2016 年 1 月 20 日

javascript - 如何让 VSCode 识别当前包 Javascript 导入?

javascript - JQuery - AJAX 对话框模式,无法按回车键提交表单

javascript - 成功发布后无法访问 $_POST 数据

string - 在 Julia 中将日期时间转换为系列数字字符串?