簡體   English   中英

將時間格式數據顯示為高級圖表

[英]Display time format data into highcharts

我想從MySQL TIME(3)格式繪制一些時間數據,所以hh:mm:ss.fff到Highcharts。

現在我只需轉換成第二個即可顯示它:

$ sql =“選擇TIME_TO_SEC(time_format(TIMEZERO,'%H%:%i:%s。%f'))為TIMEZERO,TIME_TO_SEC(time_format(TS,'%H%:%i:%s。%f' ))作為TS FROM timezero ORDER BY TS“;

使用如下所示的JSON文件:

[[ “45130”, “0”],[ “45130”, “0”],[ “45130”, “0”]]

但如果我不轉換為秒,它們接縫為文本字符串:

$ sql =“select(time_format(TIMEZERO,'%H%:%i:%s。%f'))為TIMEZERO,(time_format(TS,'%H%:%i:%s。%f'))作為TS FROM timezero ORDER BY TS“;

JSON輸出:

[[ “12:32:10.274000”, “00:00:00.000000”],[ “12:32:10.281000”, “00:00:00.000000”],[ “12:32:10.289000”,“00:00 :00.000000" ]]

有沒有辦法保存數據庫中存儲的原始數據的TIME(3)格式,並將其顯示在軸標簽中?

我完全不明白你的問題,但如果你想以自定義格式獲取日期,只需從db獲取原始日期並將其轉換為你想要的任何日期格式。 對於前者 date(“dmY H:i”,strtotime($ rawDateFromDB));

實際上我找到了一種方法:我從MySQL數據庫中獲取時間字符串,而不是使用explode函數在PHP文件中解析為秒:

  $TIME = ($row['TIME']); $SIGN = substr($row['TIME'],0,1); $explode = explode(':', $TIME); if (ctype_digit($SIGN)) {$TIME = +1 * (abs($explode[0]) * 3600 + $explode[1] * 60 + $explode[2]);} else {$TIME = -1 * (abs($explode[0]) * 3600 + $explode[1] * 60 + $explode[2]);} $TS = (strtotime($row['TS'])*1000); $data[] = array($TS, $TIME); 

我可以在幾秒鍾內用十進制數字繪制帶有負值和正值的解析數據:比回到HH:MM:SS:F的人類可讀格式回到軸屬性中

  yAxis: { labels: { formatter: function () { h = Math.floor(this.value / (60*60)); m = Math.floor(this.value / 60); s = Math.floor(this.value % 60); s = s % 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 [h, m, s].join(':'); } } }, 

現在我只需要找到一種方法來通過Ajax調用從導入的JSON中處理多個系列。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM