我正在使用highstock庫顯示來自磁力計的輸出數據,但我有一個小問題。我將數據存儲在bd中的兩個字段中。 第一個值是數據保存的日期時間,第二個傳感器值:Highstock增量MySQL時間戳轉換
2015-06-10 01:29:43 | 15
但由於傳感器在一秒鐘內發送多個值,我需要這個時間轉換,以在UNIX的增量方式
讓我們假設它的原始數據:
2015-06-10 01:29:43 | 15 2015-06-10 01:29:43 | 16 2015-06-10 01:29:43 | 40 2015-06-10 01:29:43 | 50 2015-06-10 01:29:43 | 15 2015-06-10 01:29:43 | 11
我將其轉換爲時間戳:
1444094983 | 15 1444094983 | 16 1444094983 | 40 1444094983 | 50 1444094983 | 15 1444094983 | 11
最後一步是將此時間轉換爲毫秒。這不是一個問題。問題是,我需要每一秒被重複,必須是一個漸進毫秒這樣
1444094983001 | 15 1444094983002 | 16 1444094983003 | 40 1444094983004 | 50 1444094983005 | 15 1444094983006 | 11
,但新的第二開始時,遞增的數字必須重新啓動,並從0重新開始。
我與PHP的工作,這將是我的方式來解決它
$i = 1;
foreach ($row as $result){
$row['data_logged'] * 1000 + $i; // assuming I converted it in mysql with UNIX_TIMESTAMP
if($prev_data != $row['data_logged']) $i = 1;
$prev_data = $row['data_logged'];
$i++;
}
有做一個更好的/最簡單的方法?基於上述討論
你只是想要唯一的數據,或者你存儲這個獨特的方式。你可以更容易地存儲,而不是有這個精心製作的算法... –
存儲它的方式我沒有問題,它需要像這樣:'2015-06-10 01:29:43 | 15'因爲我不僅會在高庫中展示它。 問題是highstock請求一毫秒的價值,但是當我存儲我以日期時間的方式。你有什麼建議?即使我必須改變存儲方式 – GEPD
否,您不必更改它,但是當它存儲到最初存儲的唯一存儲或數據時,有一種更簡單的方法可以執行此操作。你怎麼知道你需要添加ms的記錄,當你在一秒鐘(999ms)結束時你會做什麼? –