我使用Morris.js來顯示折線圖,並用時間戳作爲X軸值。
作爲一個例子會比任何解釋好,這裏是一個示例數據:錯誤的日期格式
{
"1415376000":
{"VALUE1":0,"VALUE2":0,"VALUE3":16,"VALUE4":0},
"1415980800":
{"VALUE1":0,"VALUE2":0,"VALUE3":2,"VALUE4":0},
"1416585600":
{"VALUE1":0,"VALUE2":0,"VALUE3":2,"VALUE4":0},
"1417190400":
{"VALUE1":0,"VALUE2":0,"VALUE3":7,"VALUE4":0},
"1417795200":
{"VALUE1":10,"VALUE2":6,"VALUE3":16,"VALUE4":3},
"1418400000":
{"VALUE1":5,"VALUE2":4,"VALUE3":67,"VALUE4":5},
"1419004800":
{"VALUE1":3,"VALUE2":0,"VALUE3":38,"VALUE4":3},
"1419609600":
{"VALUE1":4,"VALUE2":1,"VALUE3":24,"VALUE4":1}
}
正如你所看到的,「1419609600」 -ish數據是Unix的時間戳(通過PHP mktime() function創建)。兩個時間戳之間的時間是動態生成的,這裏是一週(604800秒)。
的日期格式奇怪,並轉化不佳:用mktime()產生的實際日期是2014年11 - 12月...
加入dateFormat: function (x) { return new Date(x * 1000).toString(); }
(而不是默認的dateFormat: function (x) { return new Date(x).toString(); }
)參數在初始化時,這個轉化時間戳秒進入到毫秒的時間戳後,結果比更接近我們所期望的:
但是,那麼如何將這個日期顯示爲「2014年12月5日至12日」呢?我試圖玩xLabels
參數,dateFormat
參數,但這或者不會改變任何內容或拋出錯誤。
作爲一個側面的問題,由於我的時間戳有一個動態範圍(timestamp min和timestamp max之間的差值可以是一天,一個月,一年......),有沒有辦法讓Morris.js考慮到這一點,並動態適應這個範圍,顯示天或monthes ...? 從我對文檔的理解,這應該是可能的,但我可能是錯的...
非常感謝。
你應該解釋一下你的代碼。 –
@SebastianZartner好的,已更新。 – waki
這會按預期格式化日期。謝謝 ! – johnkork