我使用 json 输出按时间戳月份计算文章浏览量。我有这段代码:
$value = array();
$stats = Access::FETCH("SELECT COUNT(*) AS id FROM news_stats GROUP BY YEAR(date), MONTH(date)");
foreach($stats as $key => $value){
$rows2[] = $value['id'];
}
echo json_encode($rows2);
输出是:注意:这是每个月的计数
["1","6"]
我需要像这样为这个输出打印月份名称:
["january","June"]
如何在打印月份名称? Menaig 是:1 , 6
从哪个月算起?
最佳答案
您可以在 MySQL 本身中通过调整您的查询来使用 MONTHNAME
来完成它:
SELECT COUNT(*) AS id FROM news_stats GROUP BY YEAR(date), MONTHNAME(date);
通过 mktime
/date
组合在 PHP 中执行此操作的唯一真正值(value)在于您的脚本不知何故需要数值以及完整的月份名称本身。但这也可以在 MySQL 中通过执行诸如 SELECT YEAR(date) as year, MONTH(date) as month, MONTHNAME(date) as month_name...
之类的操作来解决,但这一切都取决于编码需求比什么都重要。
此外,刚刚意识到在您的示例中,它都是为 GROUP BY
编码的。所以也许这会更好:
SELECT COUNT(*) AS id,
YEAR(date) as `year`,
MONTH(date) as `month`,
MONTHNAME(date) as `month_name`,
FROM `news_stats`
GROUP BY `year`, `month`;
关于php - 如何从 PHP 中的 MySQL 时间戳计数打印月份名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24331096/