【发布时间】:2026-02-16 02:10:01
【问题描述】:
所以,我偶然发现了一个我似乎无法克服的非常恼人的问题。我一直在尝试制作一个图表来显示一天中的温度变化。
一切都不是那么棘手,但我根本无法格式化从 PHP 传递给我的脚本的日期时间字符串。经过一些试验和错误,我想,我会下载另一个示例并从那里尝试。
`<?php
$dataPoints = array(
array("x" => 1512441720000 , "y" => array(120, 78)),
array("x" => 1512447240000 , "y" => array(147, 89)),
array("x" => 1512453960000 , "y" => array(139, 85)),
array("x" => 1512461700000 , "y" => array(160, 95)),
array("x" => 1512466320000 , "y" => array(130, 84)),
array("x" => 1512472020000 , "y" => array(138, 87)),
array("x" => 1512475440000 , "y" => array(127, 78)),
array("x" => 1512477540000 , "y" => array(119, 76)),
array("x" => 1512482280000 , "y" => array(135, 82)),
array("x" => 1512486900000 , "y" => array(122, 78)),
array("x" => 1512490800000 , "y" => array(130, 82)),
array("x" => 1512494160000 , "y" => array(122, 75))
);
?>
<!DOCTYPE HTML>
<html>
<head>
<script>
window.onload = function () {
var chart = new CanvasJS.Chart("chartContainer", {
animationEnabled: true,
title:{
text: "Blood Pressure Readings over a Day"
},
axisY: {
title: "Pressure (in mmHg)",
gridThickness: 0
},
data: [{
type: "rangeArea",
xValueType: "dateTime",
yValueFormatString: "#,##0 mmHg",
toolTipContent: "{x}<br><b>Systolic:</b> {y[0]}<br><b>Diastolic:</b> {y[1]}",
dataPoints: <?php echo json_encode($dataPoints); ?>
}]
});
chart.render();
}
</script>
</head>
<body>
<div id="chartContainer" style="height: 370px; width: 100%;"></div>
<script src="https://canvasjs.com/assets/script/canvasjs.min.js"></script>
</body>
</html>`
这东西很好用。请注意,我在那里没有“xValueFormatString”。原来有一个如下:“xValueFormatString:”hh:MM TT””,所以 x 轴上的时间戳显示从 00 到 12 的小时和从上午或下午的 00 到 59 的分钟。我想将其更改为“HH:mm”。什么都没做,还是和以前一样。现在我删除了它,它仍然是一样的。是什么告诉图形现在像这样格式化 x 轴?在我看来没什么。那么,为什么它保持不变?
我从中构建原始图表的另一个示例显示了相同的问题,只是原始格式为“YYYY:mm:dd hh:mm”。为什么脚本会“记住”它们原来的格式,却不让它们自己改变?
我自己的图表实际上与我在此处粘贴的示例图表相同。只是我从数据库中获取了我的 unixtimestamp,但即使我传递了示例中的数字,它也不起作用,所以我自己的代码不是问题。
我正在使用 chrome,如果您需要该信息,该页面由我的 raspberrypi 通过 apache 托管。
感谢所有可能提前帮助我的人!
【问题讨论】:
标签: javascript php html canvasjs