使用 moment.js 如何给出持续时间的特定格式

2023-12-25

给定来自 API 的秒数持续时间duration_seconds = 86485.

(1天0小时1分1秒)

我打算使用 moment.js 将其转换为格式化的持续时间,如下所示:

 1. {d} {hh}:{mm}:{ss} (1d 00:01:01)
 2. {d}d {hh}h m{mm} s{ss} (1d 04h 30m 23s)

我还想确保以下几点:

  • 如果天数为 0 (00:01:01- 1分1秒)
  • hh:mm:ss 永远不会被修剪,1 秒显示为00:00:01.

我可以这样创建持续时间:

moment.duration(duration_seconds, 'seconds')

humanize 函数并不适合它的近似值。 我也可以自己写:

duration.get('d')
duration.get('h')
duration.get('m')
duration.get('s')

我似乎找不到内置函数,但我认为这是一个显而易见的函数?我是否缺少某些东西,否则我可以将其 PR 到时刻库中。

这似乎暗示该功能仍然不存在:使用 moment.js,如何将持续时间简化为其最简单的形式? https://stackoverflow.com/questions/42079230/using-moment-js-how-can-i-simplify-a-duration-to-its-most-simplified-form


The 时刻-持续时间-格式 https://github.com/jsmreese/moment-duration-format插件可以帮助你做到这一点。

// your input
var duration_seconds = 86485;

// create a moment-duration object
var duration = moment.duration(duration_seconds, 'seconds');

// format the object with a string
var formatted = duration.format('h[h] m[m] s[s]');

// displaying the output here
document.getElementById('output').innerHTML = formatted;
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.18.1/moment.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment-duration-format/1.3.0/moment-duration-format.min.js"></script>
<div id="output" />

请注意,默认情况下它会省略不相关的单位,因此如果您的输入是 3,它只会说"3s", not "0h 0m 3s".

如果您想更改此行为,请设置trim:false, 根据文档 https://github.com/jsmreese/moment-duration-format#trim。例如,要获取您在评论中提到的格式,请使用:

.format('hh:mm:ss', { trim: false })
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 moment.js 如何给出持续时间的特定格式 的相关文章

随机推荐

  • DataInputStream/DataOutputStream类与InputStream/OutputStream类之间的区别

    每当我使用HttpConnection班级于Java ME Android or in BlackBerry 我用DataInputStream DataOutputStream用于通过远程服务器读取和写入数据的类 然而还有其他类 例如In
  • Get-EventLog - 轻松按“今天”过滤?

    我想快速检查今天发生的事件 即 从午夜开始的任何事件 Powershell 中是否有 今天 别名 内置功能可以帮助解决此问题 我目前正在做这样的事情 get eventlog system source disk after datetim
  • 拒绝类,因为它未通过编译时验证

    我正在尝试将来自 openwhispersystems 的 curve25519 java 集成到我的 Android 应用程序中 并使用 API 23 Marshmallow 进行编译 使用非本机代码时 我收到此运行时异常 java la
  • 我应该更改什么才能使该文件编译?

    我正在上编程课 这个程序是我作业的一部分 该文件分析名为 Names txt 的文件中的数据 然后打印信息 我收到编译错误 我想知道需要更改或添加哪些内容才能成功编译 这是我的代码 import java util Scanner impo
  • 更改 ImageView 内容会导致 OutOfMemoryError

    我有一个非常简单的应用程序 包含一个 ImageView 和一个 Button 我加载的第一个 Drawable 资源图像视图在 XML 布局中用 android src 标签指定 但是在运行时我想改变它显示的图片 为此 我启动一个活动以从
  • 压缩 (zip) 无法创建输出文件 - 错误

    我正在使用 VBscript 扫描文件夹 创建 zip 文件并向其中添加文件 压缩 但是当我在包含大量文件的文件夹上运行脚本时 出现以下错误 压缩 zip 无法创建输出文件 我的邮政编码处理代码如下 Dim objFSO Set objFS
  • 如何在视图刀片 Laravel 5.3 中显示空间?

    我在数据库中的记录是这样的 我想用空格显示 我尝试这样 nl2br text and nl2br e text 这是行不通的 我该如何解决 你尝试过使用 nbsp 在这里你可以使用 HTML 实体
  • 使用 @font-face 时,SVG 文本边框因浏览器而异?

    我试图通过使用 getBBox 方法获取边界框来根据文本的宽度和高度放置 SVG 文本元素 如果文本使用网络安全字体 则在不同浏览器中效果相当好 但如果使用 font face 和自定义网络字体设置文本样式 则在 Firefox Mac 和
  • JavaScript:推入对象内的数组?

    问题 如何将一个数组推入对象内的另一个数组 示例编码 var myObj arrayOne arrayTwo var arrayLetters A B obj arrayOne push arrayLetters RESULT arrayO
  • 在 JTable 中的单元格上方显示工具提示

    当用户在单元格中输入错误的值时 我需要在单元格上方 或下方 显示工具提示 参见下图 我有一个工具提示 但我需要一个点来将其显示在正确的位置 所以我想获取一个单元格位置 你知道如何得到这个吗 但是 如果您有更好的解决方案来实现这种行为 我愿意
  • Keras 拟合在第一个 epoch 结束时冻结

    我目前正在尝试使用 Keras 微调 VGG16 网络 我开始对猫和狗的数据集进行一些调整 然而 在当前的配置下 训练似乎在第一个时期被阻止 from keras import applications from keras preproc
  • 编译器 vs 解释器 vs 转译器

    在我参加的 ReactJS 会议中 演讲者使用了一个术语转译器对于一些代码转换 移植的发生 过去 我听说过编译器和解释器这两个术语 我在将用户编写的语言代码转换为计算机系统上可运行的形式的上下文中使用过 转译器对我来说是新的 转译器与编译器
  • SolrJ 和自动提交

    我正在使用 SolrJ API 将文档添加到 Solr 4 3 核心 我注意到我在我使用的库存 solrconfig 中将自动提交设置为 15 秒 如下所示
  • Rails - 通过 Active Storage 上传文件后在视图中显示图像

    我有一个正在进行中的项目5 1 2我正在尝试在其上实现活动存储 按照几个在线教程 我可以设置活动存储 并且可以看到保存在其中的数据active storage blobs and active storage attachments tab
  • 类型系列扩展无法按描述工作

    On 类型族的 Haskell wiki 页面 http www haskell org haskellwiki GHC Type families 有以下示例列表 type family F a type instance F Int I
  • git hook 获取合法提交消息(#123 好消息)

    我需要确保提交消息是合法的 否则拒绝它 提交消息应该类似于 123修复丢失的括号 我想确保它以哈希开头 有一个整数 没有 123a 并且消息至少有 10 个单词 很高兴有 消息不会连续完全相同 我正在使用这个 Trac 插件进行更改集 它更
  • 从传入 ASPX url 路由到 ASP.NET MVC 控制器操作

    我有一个 url Review aspx reviewId 3 我希望将此 url 路由到 MVC 控制器 操作 Review 3 有任何想法吗 没关系 像这样的简单路线是有效的 routes MapRoute Reviews Old Ro
  • Tcl 扩展:扩展的 ClientData 的生命周期

    重要的本机扩展将需要每个解释器的数据 动态分配的结构 我目前正在使用Tcl SetAssocData 有一个对应的密钥 扩展名和适当的删除例程 以防止此内存泄漏 然而 Tcl PkgProvideEx 也允许记录这样的 信息 该信息可以通过
  • 如何使用 PHP 和 sqlsrv 驱动程序清理输入?

    我正在开发一个使用 sqlsrv 驱动程序的 PHP MSSQL 项目 阻止 SQL 注入攻击的最佳方法是什么 我需要类似 mysql real escape string 的东西 但用于 sqlsrv 驱动程序 如果你像这样使用它 引用是
  • 使用 moment.js 如何给出持续时间的特定格式

    给定来自 API 的秒数持续时间duration seconds 86485 1天0小时1分1秒 我打算使用 moment js 将其转换为格式化的持续时间 如下所示 1 d hh mm ss 1d 00 01 01 2 d d hh h