gpt4 book ai didi

php - MySQL 日期时间 - XAXIS HGHCHART

转载 作者:行者123 更新时间:2023-11-29 06:56:16 25 4
gpt4 key购买 nike

我是这个社区的新人。几天以来,我尝试使用 Highstock 实现图表。该图表将显示随时间变化的温度监测情况。

这些值通过PHP获取并存储在MySQL中。我可以在 Highchart 的 XAXIS 中显示温度值,但不能显示日期时间。

我没有使用Javascript,如果我找到如何在Javascript中将DateTime转换为时间戳并将其显示为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

});

The current result in picture

最佳答案

对于 highcharts,您不仅必须将 dateTime 转换为时间戳,还必须将时间戳转换为毫秒。

当我遇到这样的问题时。我在 PHP 中将 dateTime 转换为带有毫秒的时间戳。用PHP做很方便。

PHP

strtotime({your_dateTime})*1000

MYSQL此查询将 DATETIME 转换为 UNIX 时间戳

SELECT UNIX_TIMESTAMP(STR_TO_DATE('Apr 15 2012 12:00AM', '%M %d %Y %h:%i%p'))*1000

但是如果您只想在 JavaScript 中进行转换,那么:

converting-a-datetime-string-to-timestamp-in-javascript

how-do-you-get-a-timestamp-in-javascript

<小时/>

2017年8月6日 - 更新

官方文档: data-from-a-database如何从mysql获取数据并转换为highcharts。

php 沙箱中的转换:php_sand_box

jsFiddle http://jsfiddle.net/1gbpzeho/

关于php - MySQL 日期时间 - XAXIS HGHCHART,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45480698/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com