CanvasJS docs在x轴上显示奇怪的数据点

问题描述 投票:1回答:1

所以,我一直在看这里的文档:https://canvasjs.com/php-charts/multi-series-area-chart/

它显示数据点数组,如下所示:

array("x" => 1451586600000, "y" => 96.709),
array("x" => 1454265000000, "y" => 94.918),
array("x" => 1456770600000, "y" => 95.152),
array("x" => 1459449000000, "y" => 97.070),
array("x" => 1462041000000, "y" => 97.305),
array("x" => 1464719400000, "y" => 89.854),
array("x" => 1467311400000, "y" => 88.158),
array("x" => 1469989800000, "y" => 87.989),
array("x" => 1472668200000, "y" => 86.366),
array("x" => 1475260200000, "y" => 81.650),
array("x" => 1477938600000, "y" => 85.789),
array("x" => 1480530600000, "y" => 83.846),
array("x" => 1483209000000, "y" => 84.927),
array("x" => 1485887400000, "y" => 82.609),
array("x" => 1488306600000, "y" => 81.428),
array("x" => 1490985000000, "y" => 83.259),
array("x" => 1493577000000, "y" => 83.153),
array("x" => 1496255400000, "y" => 84.180),
array("x" => 1498847400000, "y" => 84.840),
array("x" => 1501525800000, "y" => 82.671),
array("x" => 1504204200000, "y" => 87.496),
array("x" => 1506796200000, "y" => 86.007),
array("x" => 1509474600000, "y" => 87.233),
array("x" => 1512066600000, "y"=> 86.276)

然后在代码的JS部分中进一步向下,它使用以下代码格式化此数据:

xValueType: "dateTime",
xValueFormatString: "MMM YYYY",

所以,我的问题是,数组中的x键中的数字如何转换为数月,如此附加图像中所示? image of the chart in action

而且,我如何将我的php datetime对象转换为datapoints数组的x变量中的那些数字。

javascript php arrays datetime canvasjs
1个回答
1
投票

CanvasJS是一个JavaScript库,它接受数字/ JavaScript日期对象/ JavaScript时间戳作为x值。由于您在PHP中有日期对象,首先应使用strtotime将PHP日期时间转换为PHP时间戳。然后你需要convert it to JavaScript timestamp(将PHP时间戳乘以1000)。

根据documentation,如果您提供时间戳值而不是Date对象,则必须将xValueType显式设置为“dateTime”。因此,当您将时间戳传递给chart-options并将xValueType设置为“dateTime”时,库会将其视为日期时间。

注意:在PHP中,timestamp是自1970年1月1日的UNIX Epoch(也称为UNIX时间戳)以来计算的秒数值 - 您将其称为数字。

© www.soinside.com 2019 - 2024. All rights reserved.