【问题标题】:Vis.js / Moment.js - Timeline LabelsVis.js / Moment.js - 时间线标签
【发布时间】:2019-05-07 22:57:05
【问题描述】:

vis.js 时间线的标签格式有问题。我想显示一个 1 小时 30 分钟的 excat 时间段,并且标签应该只显示经过的分钟和秒数。

我这样配置选项:

let options = {
        autoResize: true,
        min: '2000-1-1 00:00:00',
        max: '2000-1-1 01:30:00',
        start: '2000-1-1 00:00:00',
        end: '2000-1-1 01:30:00',
        //zoomMax: 86399999,

        zoomMin: 18000,
        format: {
            minorLabels: {
                millisecond: '',
                second:     'mm:ss',
                minute:     'mm:ss',
                hour:       'mm:ss',
                weekday:    '',
                day:        '',
                week:       '',
                month:      '',
                year:       ''
              },
              majorLabels: {
                millisecond:'',
                second:     '',
                minute:     '',
                hour:       '',
                weekday:    '',
                day:        '',
                week:       '',
                month:      '',
                year:       ''
              }
        }
    };

据我了解,vis.js 调用来自 moment.js 的 moment().format() 函数的标签(秒、分钟、小时等)。在 moment.js 格式中是否有可能以简单的方式将小时 (H) 乘以 60 到分钟 (mm) 值?

在我当前的配置中,它在 60 分钟后的 00 分钟重新启动: timeline

(是的,我正在处理足球申请)

【问题讨论】:

    标签: javascript momentjs vis.js


    【解决方案1】:

    In the docs你可以通过函数找到自定义日期格式的选项:

    您还可以为每个标签使用函数格式。该函数以该顺序接受日期、比例和步长作为参数,并期望返回标签的字符串。

    您可以在下面找到转换为分钟的时间:

    format: {
      minorLabels: function (date, scale, step) { 
        var time = date.format("HH:mm");
        return moment.duration(time).asMinutes();
      },
      majorLabels: function (date, scale, step) { return "" }
    }
    

    JSFiddle with example

    【讨论】:

      猜你喜欢
      • 2017-01-08
      • 2023-03-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-07-07
      • 1970-01-01
      相关资源
      最近更新 更多