Javascript-将Highy轴的时间戳转换为毫秒

Javascript-将Highy轴的时间戳转换为毫秒,javascript,highcharts,Javascript,Highcharts,请帮助我将字符串转换为时间格式[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的指导下,我得到了我想

请帮助我将字符串转换为时间
格式[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
Hr:Min:Sec
格式保存值,如
20:57:13
等,需要以
Y轴绘制。要知道,我们有
datetime
在Y轴上键入,可以为您绘制图形。但为此,您需要将时间戳转换为毫秒

这就是我为此所做的

yourtime = $(this).attr('myVar');
hms = yourtime.split(':');
msecs = hms[0] * 3600000 + hms[1] * 60000 + hms[2]*1000;
seriesData_1.push(msecs);
现在我已经把它转换成毫秒,要用
H:M:S
格式在Y轴上绘制,需要使用
Y轴下的
dateTimeLabelFormats
,如下所示

            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(':');
                    }
            },
工具提示:{
启用:对,
格式化程序:函数(){
var main=''+Highcharts.dateFormat('%A,%b%e,%Y',this.x)+'';
s=数学楼层(此.y/1000);
m=数学楼层(s/60);
s=s%60;
h=数学楼层(m/60);
m=m%60;
h=h%24;
如果(h<9)h=“0”+h;
如果(m<9)m=“0”+m;
如果(s<9)s=“0”+s;
返回'+this.x+'
'+'值-'+[h,m,s].join(':'); } },

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

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

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(':');
}
function(){
var h=数学地板(this.value/3600);
var m=数学下限(此值/60)%60;
var s=该值为%60;
如果(h<9)h=“0”+h;
如果(m<9)m=“0”+m;
如果(s<9)s=“0”+s;
返回[h,m,s].连接(':');
}
在datetime上乱搞是适得其反的,因为它从来就不是用来存放无日期的时间的


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

这与Ajax有什么关系?XMLHttpRequest对象在代码中的什么位置?可能是我太密集了,但是
20:57:13
不是已经在
Hr:Min:Sec
格式中了吗?@epascarello这段代码在ajax模块下highcharts@Amadan是的,这是同样的格式。但当我绘制highcharts图表时,它只拾取hr列。所以我认为它可能是字符串,需要转换为带有日期解析的时间戳,因为您只能有Y轴的数字。将日期转换为秒(
hms=val.split(':');secs=hms[0]*3600+hms[1]*60+hms[2]
)并使用它。浏览器中不会显示我的图表。我得另想办法。。谢谢你的帮助,阿玛丹