2013-08-21 72 views
0

請幫我在字符串轉換成時間format[Hr:Min:Sec]的Javascript - 轉換時間戳到毫秒Highcharts Y軸

這裏是我的一塊

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

我試圖將此更改爲:

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

但沒有運氣。該myVar將持股價值20:57:13

更新:我在Highcharts & Javascript和使用指導#1啞所以,我得到了我想要的東西。

這是它。我有myVar系列20:57:13Hr:Min:Sec格式,需要繪製在Y axis。得知我們在Y軸上有datetime類型,可以爲你繪製圖表。但爲此,您需要將時間戳轉換爲毫秒。

這是我爲

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(':'); 
        } 
      }, 

希望這有助於爲新手和我一樣:)

+1

什麼DOE這與阿賈克斯呢?代碼中的XMLHttpRequest對象在哪裏? – epascarello

+4

也許我正在密集,但已不是'20:57:13'已經在'小時:分鐘:秒'格式? – Amadan

+0

@epascarello這個代碼是在高分辨率下的ajax模塊 – Sathy

回答

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(':'); 
} 

擺弄日期時間是適得其反,因爲它從未打算持有無日期的時間。

(免責聲明:這一切都來自API的描述推斷,我有Highchart不熟悉)

+0

我的圖表沒有顯示在瀏覽器中。不得不想一些其他的方式..感謝您的幫助阿馬丹 – Sathy