当前位置: 首页 > 知识库问答 >
问题:

用于 ISO 8601 格式持续时间的库

翟丰茂
2023-03-14

我正在寻找javascript/jquery库,它可以为我提供UI和功能来选择ISO 8601格式的持续时间。

用户界面应包含多个级联选择框,用户可以选择月,小时,天,周...在ISO_8601中定义。

选择后,库应将其转换为标准ISO_8601持续时间格式的代码,反之亦然。

例如,“P3Y6M4DT12H30M5S”表示持续时间为“三年六个月四天十二小时三十分五秒”。

共有2个答案

范承教
2023-03-14

包了一个小图书馆来帮助这个:https://www.npmjs.com/package/tinyduration

用法示例

import { parse, serialize } from 'tinyduration';
 
// Basic parsing
const durationObj = parse('P1Y2M3DT4H5M6S');
assert(durationObj, {
    years: 1,
    months: 2,
    days: 3,
    hours: 4,
    minutes: 5,
    seconds: 6
});
 
// Serialization
assert(serialize(durationObj), 'P1Y2M3DT4H5M6S');

您可以使用npm install--save tinydurationyarn add tinydurance

希望这能帮上忙

顾光明
2023-03-14

momentjs是一个流行的js时间库,github上有一个名为moment-interval的插件,支持ISO 8601持续时间

来自github自述文件

moment.duration(3, 'weeks').toISOString(); // "P3W"
moment.duration({days: 9, hours: 18}).toISOString(); // "P9DT18H"

有关更多示例,请参见矩间隔github页面

 类似资料:
  • 我有ISO8601格式的持续时间值,我将其转换为时间值为整数秒,如下所示: ISO8601格式的持续时间值=“P1Y”。 我将该值存储在“时间-单位-秒”中。因此,当我检索的值将是在int,我想转换回ISO8601持续时间格式,所以我应该得到“P1Y”转换后回来。 有没有快速的方法可以做到这一点?或者我必须把时间的int值转换成float,然后通过某种方法把它转换成ISO8601持续时间。

  • 我正在寻找一种从“ISO 8601持续时间格式”(P0DT0H0M0S)转换为小时的便捷方法。 到目前为止,我想到了这个: 如您所见,我的方法是将数字拆分并乘以24、1、1/60、1/3600以得到小时。我可以减少代码量吗? 样本数据和所需结果 输入: 'P1DT2H3M44S' (1 天 2 小时 3 分 44 秒) 期望输出: 26.062222222222222 (这是小时)

  • 我正试图使用时刻持续时间格式设置倒计时计时器的格式,但一旦时间达到60分钟以下,小时就会消失,例如60分钟显示为“01:00”,这是正确的59分钟显示为“59”,这是不正确的,它应该显示为“00:59” 其中3500000毫秒等于58分钟 我有以下代码: 显示结果:58,而不是00:58 我到底做错了什么? 我也尝试过这种变化,但没有任何效果

  • 我正在将一个项目从Joda Time过渡到java8的本机时间库,我遇到了一个障碍。 我一直找不到持续时间的格式化程序。我想有一个自定义的字符串格式,例如HHH MM,其中75小时15分钟的持续时间将格式化为“75 15”。 通过转换为句点并使用句点Formatter,Joda-Time很容易做到这一点,但是我无法在Java8中找到这种类型的类。我错过了什么吗?

  • 我有一个ISO 8601格式的持续时间,例如:PT5M或PT120S。 有没有什么方法可以使用moment.js解析这些并获取持续时间中指定的分钟数? 谢谢大家! PS:我研究了解析ISO 8601持续时间,并将ISO 8601时间格式转换为正常持续时间 但很想知道这是否可行。

  • 问题内容: 我想使用H:MM:SS之类的格式以秒为单位格式化持续时间。Java中的当前实用程序旨在格式化时间而不是持续时间。 问题答案: 如果你使用的Java版本早于8 …,则可以使用Joda Time和PeriodFormatter。如果你确实有持续时间(例如,经过的时间量,没有参考日历系统),那么你可能应该大部分时间都在使用-然后可以致电(指定要反映25小时是否变为25小时) 1天1小时与否,