2012-03-12 104 views
8

摘要谷歌圖表:通過日期不使用日期()?

我想在Google Charts中以日期爲X軸製作折線圖。我已經把所有的東西都排序了,但它要求的傳球日期爲Date,即new Date(2005, 3, 13)。有什麼辦法可以將它作爲Unix時間戳或字符串來傳遞嗎?

更多詳細信息

所以我有一堆我要繪製在PHP中的數據。我走的是數據,並將其安排到該格式的數組時,通過json_encode()運行,將產生正確的JSON格式,每the Google data docs

$graph_data = array(
    'cols' => array(
     array(
      'id' => 'date', 
      'label' => 'Date', 
      'type' => 'datetime', 
     ), 
     array(
      'id' => 'odometer', 
      'label' => 'Miles', 
      'type' => 'number', 
     ), 
    ), 
    'rows' => array(
     array(
      'c' => array(
       array('v' => 1331479502), 
       array('v' => 56872), 
      ), 
     ), 
     array(
      'c' => array(
       array('v' => 1331375984), 
       array('v' => 55324), 
      ), 
     ), 
     array(
      'c' => array(
       array('v' => 1328966460), 
       array('v' => 54244), 
      ), 
     ), 
    ), 
); 

{"cols":[{"id":"date","label":"Date","type":"datetime"},{"id":"odometer","label":"Miles","type":"number"}],"rows":[{"c":[{"v":1331479502},{"v":56872}]},{"c":[{"v":1331375984},{"v":55324}]},{"c":[{"v":1328966460},{"v":54244}]}]}

所以我有JSON創作下降,但API希望日期作爲Date對象傳遞,而不是數字(或字符串)。它現在會拋出一個錯誤,但如果我將其從datetime更改爲number,它會完美顯示,因此我知道我的JSON格式是正確的。

有什麼我可以做的,讓API接受Unix時間戳,或者可能是某種字符串?

當我輸入這個,我意識到也許我可以使用一些Javascript來走動JSON對象,並用Date對象替換時間戳,但如果我不需要通過任何數據操作的JavaScript。

編輯

我得到了一部分的方式有通過設置typenumber和傳遞日期是這樣的:

 array(
      'c' => array(
       array('v' => 1331479502, 'f' => 'March 11th, 2012'), 
       array('v' => 56872), 
      ), 
     ), 

這使得f值在工具提示中顯示(耶! ),但v值仍用於軸標籤。嗯。

編輯#2

看起來有可能是使用DataViewnumber時間戳轉換成日期一些潛力,但我還沒有想通出來呢。

回答

8

我剛剛走過JSON數組,並用Date對象替換了時間戳。它比我預期的要容易得多:

for (var i = 0; i < json.rows.length; i++) { 
    json.rows[i].c[0].v = new Date(json.rows[i].c[0].v * 1000); 
} 
+0

你在哪裏做了這個循環?謝謝! – Moozy 2012-11-13 06:28:08

+1

@Moozy:在Javascript中爲了預處理數據。你可以在http://www.viper007bond.com/about/my-cars/看到一個演示。我在這裏還將其鏡像爲備份,以便我的網站在未來發生變化:http://pastebin.com/xsQm8qZT – Viper007Bond 2012-11-14 08:34:59

0

當在x軸上顯示日期時,我使用了字符串而不是日期類型。 它允許我在服務器端自定義日期時間顯示格式,它是一個字符串,並且也不需要像JavaScript中的某些字符串或數字值創建日期對象的技巧。

+4

感謝但使用'string'的問題是,這使得[離散](http://code.google.com/apis/chart/interactive/ docs/customizing_axes.html#Discrete_vs_Continuous)軸而不是連續軸,即數據點均勻分佈,而不是根據實際值展開。 – Viper007Bond 2012-03-12 17:30:03