我是这个社区的新人。自从几天以来,我试图使用Highstock实现图表。此图表将显示随时间变化的温度监控。MySQL日期时间 - XAXIS HIGHCHART
这些值通过PHP获取并存储在MySQL中。我能够在Highchart的XAXIS中显示温度值,但不显示日期时间。
我没有使用Javascript,我认为我的问题可能会发布,如果我找到解决方案如何将DateTime转换为JavaScript中的Timestamp并将其显示为DateTime。
请在下面找到我的代码:
<?php
//Récupération des valeurs stockées dans MySQL
mysql_connect("localhost","root","root"); //connexion à la base de données mysql
mysql_select_db("Chart"); //connexion à la base de données concernées
?>
<script src="https://code.jquery.com/jquery-3.1.1.min.js"></script>
<script src="https://code.highcharts.com/stock/highstock.js"></script>
<script src="https://code.highcharts.com/stock/modules/exporting.js"></script>
<div id="container">
<script>
<?php
//récuparation de la colonne "value" dans le tableau "temperature"
$query = mysql_query("SELECT value FROM inside_temp");
while($ligne = mysql_fetch_array($query)){
$inside_temp[] = $ligne[0];
}
//récupération de la colonne date dans le tableau date
$query = mysql_query("SELECT date FROM inside_temp");
while($row = mysql_fetch_array($query)){
//$date_inside[] = $row[0];
$date_inside_temp[] = strtotime($row[0]) *1000;
$date_inside_temp[] = date_format($row[0]," Y-m-d H:i:s,");
}
//récuparation de la colonne "value" dans le tableau "temperature"
$query = mysql_query("SELECT value FROM outside_temp");
while($ligne = mysql_fetch_array($query)){
$outside_temp[] = $ligne[0];
}
//récuparation de la colonne "value" dans le tableau "temperature"
$query = mysql_query("SELECT value FROM thermostat_setpoint");
while($ligne = mysql_fetch_array($query)){
$therm_setpoint[] = $ligne[0];
}
//récuparation de la colonne "value" dans le tableau "temperature"
$query = mysql_query("SELECT value FROM consumption");
while($ligne = mysql_fetch_array($query)){
$consumption[] = $ligne[0]/1000;
}
?>
Highcharts.stockChart('container', {
rangeSelector: {
selected: 4
},
title: {
text: 'Consumption & Temperature monitoring'
},
subtitle: {
text: 'Heating experiment - LTU, Summer 2017'
},
xAxis: {
type: 'datetime',
//categories: [<?php echo join($date_inside_temp,',') ?>],
categories: Date.UTC(<?php echo $date_inside_temp;?>),
tickInterval: 15,
labels: {
format: '{value:%Y-%b-%e %H:%m}'
}
},
yAxis: {
title: {
text: 'Measured values (°C or kW)'
}
},
series: [{
name: 'Wall plug consumption',
data:[<?php echo join($consumption,',') ?>]
}, {
name: 'Inside temperature',
data: [<?php echo join($inside_temp,',') ?>]
}, {
name: 'Thermostat setpoint',
data:[<?php echo join($therm_setpoint,',') ?>]
}, {
name: 'Outside temperature',
data:[<?php echo join($outside_temp,',') ?>]
}] //fin de series
});
是的,我做了,你在你的评论注意到它在PHP的转换。 但是,正如您可以在我的代码和附加图片上看到的那样,它不起作用。 –
所以你有毫秒的时间戳,它仍然无法工作?你能否在x轴上显示任何项目的时间戳& – Constantine
你不需要在Js中将它恢复到datetime。 – Constantine