0

请帮助我将字符串转换为时间format[Hr:Min:Sec]

这是我的作品

seriesData_1.push(parseFloat($(this).attr('myVar')));

我尝试将其更改为:

seriesData_1.push(Date.parse("1-1-1" + ($(this).attr('myVar'))));

但没有运气。将myVar持有价值20:57:13

更新:我在 Highcharts & Javascript 和 Stackoverflow 指导下非常愚蠢,我得到了我想要的。

这里是。我有一个系列myVar持有值,如20:57:13Hr:Min:Sec格式,需要绘制在Y axis. 知道我们datetime在 Y 轴上输入了可以为您绘制图形的类型。但为此,您需要将时间戳转换为毫秒。

这就是我为此所做的

yourtime = $(this).attr('myVar');
hms = yourtime.split(':');
msecs = hms[0] * 3600000 + hms[1] * 60000 + hms[2]*1000;
seriesData_1.push(msecs);

现在我已经把它转换成毫秒,要在 Y 轴上用格式绘制它,H:M:S你需要使用如下dateTimeLabelFormatsy axis

            type: 'datetime',

            dateTimeLabelFormats: {
            millisecond: '%H:%M:%S',
            second: '%H:%M:%S',
            minute: '%H:%M:%S',
            hour: '%H:%M:%S'
            },

要使您的工具提示与H:M:S格式对齐,请添加此

            tooltip: {
                    enabled: true,
                    formatter: function() {
                      var main = '<b>'+ Highcharts.dateFormat('%A, %b %e, %Y', this.x) +'</b>';
                      s = Math.floor(this.y / 1000);
                      m = Math.floor(s / 60);
                      s = s % 60;
                      h = Math.floor(m / 60);
                      m = m % 60;
                      h = h % 24;
                      if (h < 9) h = "0" + h;
                      if (m < 9) m = "0" + m;
                      if (s < 9) s = "0" + s;
                      return '<b>'+ this.x +'</b><br>' + '<span style="color:green">Value-</span>' + [h, m, s].join(':');
                    }
            },

希望这对像我这样的新手有帮助:)

4

1 回答 1

1

正如我在评论中所说,将系列转换为秒:

var hms = val.split(':');
var secs = hms[0] * 3600 + hms[1] * 60 + hms[2];
series.push(secs);

然后将 设置yAxis.formatter为该函数以恢复H:M:S轴上的 :

function() {
  var h = Math.floor(this.value / 3600);
  var m = Math.floor(this.value / 60) % 60;
  var s = this.value % 60;
  if (h < 9) h = "0" + h;
  if (m < 9) m = "0" + m;
  if (s < 9) s = "0" + s;
  return [h, m, s].join(':');
}

搞乱 datetime 会适得其反,因为它绝不意味着要保存无日期时间。

(免责声明:所有这些都是从 API 描述中推断出来的,我对 Highchart 并不熟悉。)

于 2013-08-21T14:47:52.220 回答