作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想尝试将持续时间字符串转换为 moment.js 持续时间对象。字符串格式示例如下:“1h30m”,应对应 1 小时 30 分钟 0 秒。
我的第一个想法是使用正则表达式,这样我就可以提取小时、分钟和秒,但我感觉有一种更有效的方法来处理它 - 最终目标是使用这些来计算命令执行之前的时间正在运行 - 我看到有一个名为 momentjs 的库我觉得可以处理这个问题,但是文档没有给出以我想要的格式处理持续时间格式的明确方法。我可以提供到目前为止我编写的代码,尽管我认为这不会有太大帮助。
最佳答案
是的,您可以使用 moment.js 来执行此操作 - 但我不确定这是否绝对必要,因为它也可以通过简单的字符串操作来完成。
字符串操作方法:
function parseTimeSpan(timeString) {
let parts = timeString.split("h");
return {
hours: Number(parts[0]),
minutes: Number(parts[1].slice(0, -1))
};
}
请注意,这仅适用于同时包含小时和分钟部分的字符串,并且不支持秒。
Moment.JS 方法:
function parseTimeSpan(timeString) {
return moment.duration("PT" + timeString.toUpperCase());
}
这种方法更强大,可以处理更多的用例,但速度较慢,并且需要外部库。
关于javascript - 如何将 "1h30m"样式持续时间解析为 Moment.js 持续时间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59098277/
我是一名优秀的程序员,十分优秀!