Tóm tắtBiểu đồ của Google: chuyển ngày mà không sử dụng Ngày()?
Tôi đang cố gắng tạo biểu đồ đường trong Biểu đồ của Google có ngày làm trục X. Tôi có tất cả được sắp xếp nhưng yêu cầu phải vượt qua các ngày làm đối tượng Date
, tức là new Date(2005, 3, 13)
. Có cách nào tôi có thể vượt qua nó như là một dấu thời gian Unix hoặc có lẽ một chuỗi để thay thế?
Xem chi tiết
Vì vậy, tôi có một loạt các dữ liệu trong PHP mà tôi muốn vẽ đồ thị. Tôi lấy dữ liệu và sắp xếp nó thành một mảng trong định dạng đó sẽ tạo ra định dạng JSON đúng khi chạy qua json_encode()
, mỗi 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}]}]}
Vì vậy, tôi có việc tạo ra JSON xuống nhưng API muốn ngày được chuyển thành đối tượng Date
và không phải là số (hoặc chuỗi). Nó ném một lỗi ngay bây giờ nhưng nếu tôi thay đổi nó từ datetime
thành number
, nó đồ thị hoàn hảo vì vậy tôi biết định dạng JSON của tôi là chính xác.
Có bất kỳ điều gì tôi có thể làm để API chấp nhận dấu thời gian Unix hay có lẽ là một chuỗi sắp xếp?
Khi tôi đánh máy này, tôi nhận ra rằng có lẽ tôi có thể sử dụng Javascript để đi bộ đối tượng JSON và thay thế dấu thời gian bằng các đối tượng Date
, nhưng sẽ tốt hơn nếu tôi không phải thực hiện bất kỳ thao tác dữ liệu nào Javascript.
EDIT
tôi có một phần của con đường đó bằng cách thiết lập type
để number
và đi qua ngày như thế này:
array(
'c' => array(
array('v' => 1331479502, 'f' => 'March 11th, 2012'),
array('v' => 56872),
),
),
Điều đó làm cho giá trị f
hiển thị trong tooltip (yay!) nhưng giá trị v
vẫn được sử dụng cho các nhãn trục. Hmm.
EDIT # 2
Hình như có thể có một số tiềm năng trong việc sử dụng DataView để biến đổi một timestamp number
vào một ngày nhưng tôi đã không figured it out được nêu ra.
Bạn đã làm vòng lặp này ở đâu? Cảm ơn! – Moozy
@Moozy: Trong Javascript để xử lý trước dữ liệu. Bạn có thể xem bản trình diễn trong nguồn http://www.viper007bond.com/about/my-cars/. Tôi cũng đã nhân đôi nó ở đây như một bản sao lưu trong trường hợp trang web của tôi thay đổi trong tương lai: http://pastebin.com/xsQm8qZT – Viper007Bond