I had the same issue, used Tellac's idea, but stripped out the unwanted quotes from the json string inside PHP as follows.
I was creating a quick and dirty data source for the Annotated Time Line Visualization. You can use Tellac's code with the following changes: For Annotated Time Line the first column needs to be of type "datetime": $coltypes = array("datetime","number"); Then when creating records in the data table, do it something like this: $datatable["rows"][$ts_ndx]["c"][0]["v"]="new Date($y,$m, 1,0,0,0)"; It has the quotes in it that confuse the GV library, so now just strip them out: $json_data_table = json_encode($datatable); $json_data_table = preg_replace('/\"new/','new',$json_data_table); $json_data_table = preg_replace('/\)\"/',')',$json_data_table); echo "google.visualization.Query.setResponse({version:'0.5',reqId:'0',status:'ok',table:". $json_data_table."});"; Worked like a charm. HTH. On May 29, 3:07 pm, Piyush Ohari <piyusho...@gmail.com> wrote: > Hello Team, > > I am also facing the same problem, where I wish to transfer 'Date' > value (fetched from DB) in PHP, to "DataTable". > I could not find any way so as to do this. > > Based on your questions below, here are my replies (in my case). > a. Using DataTable, and not Query > b. Using XHR > c. Passing Date from PHP as string works fine, but further usage of > Data type value is not longer possible > d. Here is code excerpt, where prob exists. > > //Initial custom XHR > function trxImport (UI) { > var url = "/wms/php/getData.php" > _getData(url, handleResp, UI); > } > //AJAX Obj and Call > function _getData(url, resp_Handle, UI_handle) { > var request = _getHTTPObject(); //NOTE: Object creation avoid for > length in forum > if (request) { > request.onreadystatechange = function() {resp_Handle (request, > UI_handle)}; > request.open( "GET", url, true ); > request.setRequestHeader("If-Modified-Since", "Sat, 1 Jan 1900 > 00:00:00 GMT"); > request.send(null); > return true; > } else { > return false; > } > > } > > //Visualization Datatable > function drawVisualization(resp, UI) { > var JSONObject = (new Function("return " + resp))() ; > var data = new > google.visualization.DataTable(JSONObject, 0.5); > > // Create and draw the visualization. > var table = new > google.visualization.Table(document.getElementById(UI)); > table.draw(data, {'allowHtml': > true,'page':'enable','width':'4800px'}); > ..... > > PHP Code -- tried several ways to pass the Date DB value > elseif ($fields[$index]->type == 'date') { > //Sample Date = 2010-06-28 > //$dt = date_parse ($field); > //echo "{\"v\": \"new Date (", $dt['year'], > ",", $dt['month'], > ",", $dt['day'], ")\"}"; > $dt = strtotime ($field); > echo "{\"v\": \"\/new Date($dt)\/\"}"; > Non of these form (though valid JSON), is acceptable to DataTable > > I am open to give the exact code both for Page as well as PHP, if > required, please provide specific ID to mail those pages. > > Appreciate, any work-around also for handling the scenario. > I am basic-to-intermediate level programmer, and could not follow the > suggestion in the previous update, it would be good to know exact > regex used above. > > Thanks, Piyush > > On May 12, 4:11 pm, MC Get Vizzy <getvi...@google.com> wrote: > > > > > > > > > I'll have a look at this. It sounds like a bug, but it might be tricky to > > track down and fix. Are you using the Query class, or just DataTable? Are > > you using script injection or XHR? Have you tried passing the JSON as a > > string to the DataTable constructor? Can you send me a sample of your > > client-side code? > > > thanks, > > > MC Get Vizzy > > > On Tue, May 10, 2011 at 5:41 AM, Teliac <jschoett...@gmail.com> wrote: > > > Thank you for the thoughts. I had read that, and attempted to send a > > > string in that format. However, when the column is set to type > > > "string", the string displays as received -> Date(2011,0,1). When > > > cloumn type is set to "date", the graph will not display. I am not > > > sure why it is not interpreted as a date (per the GV documentation), > > > though I assume it may have to do with either the PHP json formatting > > > or (relatedly) the quotation marks which surround each json element > > > when encoded. > > > > The workaround I settled on (though it is far from elegant) is to > > > deliver the information as a string in javascript date notation form > > > ("new Date(2011,0,1)"). In the javascript callback function, I then > > > do a global replace (removal) of the quotation marks and eval the > > > remaining json variable. This reads the date string as a javascript > > > native Date declaration and works correctly. > > > > This approach is less than ideal because it requires special handling > > > for other variables in the json-encoded PHP response as well. > > > > Please let me know if you have other suggestions, or thoughts on why > > > the GV documented solution you refer to is not working for me. > > > > On May 8, 7:29 am, MC Get Vizzy <getvi...@google.com> wrote: > > > > You can send a date with a string of the format "Date(y,m,d)". For > > > > example, "Date(2011,0,1)" would be January first, 2011. This is > > > addressed > > > > here: > > > > >http://code.google.com/apis/chart/interactive/docs/dev/implementing_d... > > > > > <http://code.google.com/apis/chart/interactive/docs/dev/implementing_d.. > > > .>Though > > > > I admit it's kind of buried. > > > > > On Fri, May 6, 2011 at 4:15 AM, Teliac <jschoett...@gmail.com> wrote: > > > > > I have a question involving a PHP script that created a json-encoded > > > > > array and returns it to the client (where it is used to create a > > > > > DataTable object). > > > > > > Is there a way to pass a date value from a php server-side script to > > > > > the client side GV JavaScript such that it is recognized by the > > > > > DataTable object as a 'date' type? > > > > > > Some details: > > > > > The php script creates a json encoded array that is requested from > > > > > (and returned to) the client via a jQuery ajax call. The code looks > > > > > like this: > > > > > > ---------- > > > > > // DataTable object. > > > > > $dt = array(); > > > > > > // Column information > > > > > $col_ids = array("DATE","EU"); > > > > > $col_labels = array("Date","Equity Utilization"); > > > > > $col_types = array("string","number"); // <- Would like to pass as > > > > > "date" rather than "string" > > > > > > // Populate DataTable object with column information. > > > > > for ($y = 0; $y < count($col_ids); $y++) { > > > > > $dt["cols"][$y]["id"] = $col_ids[$y]; > > > > > $dt["cols"][$y]["label"] = $col_labels[$y]; > > > > > $dt["cols"][$y]["type"] = $col_types[$y]; > > > > > } > > > > > > // Get data from csv file and populate DataTable rows. > > > > > $rc = 0; > > > > > if (($handle = fopen($csvFile, "r")) !== FALSE) { > > > > > while (($data = fgetcsv($handle)) !== FALSE) { > > > > > > // We only need two pieces of data here: > > > > > // Date (data[0]) > > > > > // EU (data[7]) > > > > > // Add data values to $dt array. > > > > > $d = $data[0]; > > > > > > // $d is the date as a string, would like it to be interpreted > > > > > as > > > > > // type 'date' when read in by DataTable call on client. > > > > > // Is it possible to parse it here, or otherwise format the > > > > > string to > > > > > // be interpreted as type 'date' by GV on client? > > > > > $dt["rows"][$rc]["c"][0]["v"] = $d; > > > > > > // Format data value as float - necessary for GV to recognize > > > > > as number. > > > > > $d = $data[7]; > > > > > $d = floatval($d); > > > > > $dt["rows"][$rc]["c"][1]["v"] = $d; > > > > > $rc++; > > > > > } > > > > > fclose($handle); > > > > > } > > > > > > // Send information back to client via encoded json > > > > > echo json_encode($dt); > > > > > --------- > > > > > > The above code works as long as I pass the date with column type > > > > > 'string' (would like column type to be 'date'. > > > > > > Thanks in advance for your input. > > > > > > -- > > > > > You received this message because you are subscribed to the Google > > > Groups > > > > > "Google Visualization API" group. > > > > > To post to this group, send email to > > > > > google-visualization-api@googlegroups.com. > > > > > To unsubscribe from this group, send email to > > > > > google-visualization-api+unsubscr...@googlegroups.com. > > > > > For more options, visit this group at > > > > >http://groups.google.com/group/google-visualization-api?hl=en. > > > > -- > > > You received this message because you are subscribed to the Google Groups > > > "Google Visualization API" group. > > > To post to this group, send email to > > > google-visualization-api@googlegroups.com. > > > To unsubscribe from this group, send email to > > > google-visualization-api+unsubscr...@googlegroups.com. > > > For more options, visit this group at > > >http://groups.google.com/group/google-visualization-api?hl=en. -- You received this message because you are subscribed to the Google Groups "Google Visualization API" group. To post to this group, send email to google-visualization-api@googlegroups.com. To unsubscribe from this group, send email to google-visualization-api+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-visualization-api?hl=en.