【问题标题】:library for ISO 8601 formatted durationISO 8601 格式持续时间的库
【发布时间】:2020-10-15 21:33:02
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: javascript jquery css node.js iso8601


    【解决方案1】:

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

    来自 github 自述文件

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

    查看moment-interval github页面了解更多示例

    【讨论】:

    • 太棒了。这就是我要找的。还请向我推荐提供 UI 的 UI 库,以便减少我的工作
    • 我在同一个问题中提到了 UI 和功能。
    【解决方案2】:

    整理了一个小型图书馆来帮助解决这个问题: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 tinyduration 安装它

    HTH

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-07-16
      • 1970-01-01
      • 2014-08-16
      • 2021-01-11
      • 1970-01-01
      相关资源
      最近更新 更多