Javascript ChartJS将字符串中的日期视为数字

Javascript ChartJS将字符串中的日期视为数字,javascript,php,chart.js,chartjs-2.6.0,Javascript,Php,Chart.js,Chartjs 2.6.0,我正在尝试从csv文件中获取一些字符串,将它们放在chartjs的图形下 我编写了这个php函数: function getTitle($id) { $stations = fopen("stations.csv", 'r'); //$csv_data = fopen(date("G") . '.csv', 'r'); $csv_data = fopen('16.csv', 'r'); //fopen("/mnt/weather-data/" . date("Y/m/d/G") . "

我正在尝试从csv文件中获取一些字符串,将它们放在chartjs的图形下

我编写了这个php函数:

function getTitle($id) {
 $stations = fopen("stations.csv", 'r');
 //$csv_data = fopen(date("G") . '.csv', 'r');
 $csv_data = fopen('16.csv', 'r'); //fopen("/mnt/weather-data/" . 
 date("Y/m/d/G") . ".csv", 'r');
 $data = array();
 $DAY_LENGTH = 60 * 60;
 $currentDate = date('U');

while (($line = fgetcsv($csv_data)) !== FALSE) {
    $date = date('U', strtotime($line[1]));
    if ($date >= ($currentDate-$DAY_LENGTH) && $line[2] == $id) {
        array_push($data, $line[0]);
    }
}

for ($i = 0; $i < count($data); $i++) {
    echo $data[$i] . ",";
}
fclose($stations);
fclose($csv_data);
}
函数getTitle($id){ $stations=fopen(“stations.csv”,“r”); //$csv_data=fopen(日期(“G”)。.csv”,“r”); $csv_data=fopen('16.csv','r');//fopen(“/mnt/weather data/”)。 日期(“Y/m/d/G”).“csv”和“r”); $data=array(); $DAY_LENGTH=60*60; $currentDate=日期('U'); while(($line=fgetcsv($csv_data))!==FALSE){ $date=date('U',strottime($line[1]); 如果($date>=($currentDate-$DAY\u LENGTH)&&$line[2]==$id){ 数组_push($data,$line[0]); } } 对于($i=0;$i 这很好,无论我在哪里调用这个函数,它都会打印必要的字符串,这是一个日期,例如2018-02-08

当我尝试在标签部分调用此函数时,我需要在ChartJS中调用它们。它以总和的形式返回该日期,因此2018-02-08将返回2008

labels: [<?php getTitle(($_GET['id']))?>],
标签:[],
我做错了什么

另一个问题是,当我尝试将$line[0]更改为$line[1]时,时间格式如下:20:17:36,我的整个应用程序停止工作


希望任何人都能帮助我

代码的问题在于,echo只输出变量的内容,但当您将其值解析到javascript数组中时,需要用引号将值括起来。所以如果你改变

for ($i = 0; $i < count($data); $i++) {
    echo $data[$i] . ",";
}
for($i=0;$i
进入

for($i=0;$i

它应该会起作用。这也将解决您的其他问题。因此,有了这个改变,你也应该能够利用时间。

非常感谢你,我挣扎了一段时间,但这很有帮助!再次感谢!
for ($i = 0; $i < count($data); $i++) {
    echo "'" . $data[$i] . "',";
}