我有我的工作曲線非常接近完美。我通過PHP抓取其數據和人力車返回JSON數據,一個問題卻是,我不能讓十二月份展現出來的圖形。人力車月基於X軸問題
我需要顯示全年的結果。所以,即使有一個爲十二月沒有記錄我需要證明爲0
什麼我做的是這樣的基本前提(我沒有使用在實踐中的strtotime)
array
(
"Jan"=>array
(
"timestamp"=>strtotime('01-01-'.$this->year),
"records"=>(array)timestamps
)
//do for all months
)
從這的月記錄的金額是該月的記錄數組的長度,我也有那個月的確切時間戳。
然後當我json_encode這個數組時,我有一個JS對象,我可以迭代創建Rickshaw系列,我將timestamp鍵作爲其x軸值,而records.length作爲其y軸值。
這是工作得很好,但於12月這裏是什麼樣的圖表目前看起來像
http://i.imgur.com/bzbELHW.png
我不明白的是,每隔一個月工作按預期的圖像。如果其記錄數組的長度爲0,它繪製它爲0。出於某種原因,12月份只是沒有被拾起。起初我以爲這是一個時區差異,但是這是怎麼了實際得到的時間戳每月
protected function getUnixTime($date_string)
{
$date = new DateTime($date_string , new DateTimeZone('GMT'));
return $date->format("U");
}
並使用該工具http://www.epochconverter.com/他們看起來是正確的檢查所有的時間戳。 FYI這裏是我如何設置人力車
var graph = new Rickshaw.Graph(
{
element:document.querySelector(scope.conf.chart_element),
width:scope.conf.chart_width,
height:scope.conf.chart_height,
renderer:scope.conf.chart_type,
series: scope.defaults.graph_series_data.reverse()
}),
time = new Rickshaw.Fixtures.Time(),
months = time.unit('months'),
x_axis = new Rickshaw.Graph.Axis.Time(
{
graph: graph,
timeUnit:months,
}),
y_axis = new Rickshaw.Graph.Axis.Y(
{
graph: graph,
orientation: 'left',
tickFormat: Rickshaw.Fixtures.Number.formatKMBT,
element: document.getElementById('y_axis'),
}),
legend = new Rickshaw.Graph.Legend(
{
element: document.querySelector('#legend'),
graph: graph
});
graph.render();
任何幫助將不勝感激,這一個讓我難住。