gpt4 book ai didi

php - 按日期有效地绘制数据图表

转载 作者:行者123 更新时间:2023-11-29 02:21:32 25 4
gpt4 key购买 nike

我想在时间序列折线图上显示用户输入的信息。 ChartJS 似乎是一种很好的免费方式来做到这一点。它需要一组日期,以及一组这些日期的值。

假设用户请求两个日期之间的数据,并按天分组。

在我的数据库中,我有一个表,每一行都有一个 UNIX 时间戳。我可以轻松调用特定日期的数据和分组,例如

SELECT some_metric 
FROM tbl_example
WHERE date BETWEEN [start_ts] AND [end_ts]
GROUP BY DAY(FROM_UNIXTIME(date))

我还有一个函数可以将两个日期之间的日期组成一个数组。

现在的问题是用户在某些天没有数据,所以我需要修改 MySQL 吐出的数组,以便某些天有 0。

除了可怕的双重嵌套 foreach 交叉检查任一数组中的日期之外,还有一种有效的方法来修复 MySQL 或 PHP 中的数据差距吗?


更新:This似乎是一种在 JavaScript 端处理时间序列数据间隙的可能解决方案。


更新:我想出了一个相对简单的 20 行 PHP 解决方案。它重新格式化 MySQL 吐出的值数组,并为每个日期执行 if (isset(...)) 检查该数组,然后为该日期添加 0。

到目前为止,它已经完成了几天的工作,但我必须更深入地研究它才能在数周和数月内正常工作。

最佳答案

我建议使用此方法为 start_tsend_ts 之间的日期生成值:

Get a list of dates between two dates

然后使用您的结果UNION

这样可以省去在 php 中迭代结果的麻烦...

如果您在 some_metric 上使用一些聚合(例如 SUMCOUNT),您可以生成一个名为 some_metric 的新字段 使用生成的日期,使用 NULL0 值,并且无论这些日期的记录是否存在,聚合都是有效的。

关于php - 按日期有效地绘制数据图表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30962556/

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