Take the 2-minute tour ×
Drupal Answers is a question and answer site for Drupal developers and administrators. It's 100% free, no registration required.

I'm working on a module that will generate a graph using Google's chart api. The data used to generate the chart uses date objects because I'm graphing race times, like this

[
    ['Number', 'Time'],
    ['1', new Date(2014, 5, 5, 0, 1, 47, 470)],
    ['2', new Date(2014, 5, 5, 0, 1, 45, 880)],
    ['3', new Date(2014, 5, 5, 0, 1, 43, 520)],
    ['4', new Date(2014, 5, 5, 0, 1, 40, 670)]
]

I want to generate this using PHP and am having trouble passing this to the script. The code I have to generate the data looks like this

$jsData = array();
$jsData[] = array("Number","Time");

foreach($records_nodes as $node) {
  $number++;
  $uTime = strtotime("2014-01-01 0:$time");

  $hundreths = isset($node->field_racetime[$node->language]) ? substr($node->field_racetime[$node->language][0]['time'],-2) : 0;

  $jstime = sprintf("new Date(%d,%d,%d,%d,%d,%d,%d)",
      2014,
      1,
      1,
      12,
      date("m",$uTime),
      date("s",$uTime),
      $hundreths  * 10
  );
  $jsData[] = array("$number",$jstime);
}
drupal_add_js(array('records_view' => array('data' => $jsData)), 'setting');

This works well. I can see the data being passed to Drupal.settings.records_view.data. However, the second element (the new Date part) is being passed as a string:

['1', 'new Date(2014, 5, 5, 0, 1, 47, 470)'],

Is there a way to pass this as the JavaScript object?

share|improve this question
add comment

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Browse other questions tagged or ask your own question.