Php 查找时间段内每个月的第一天和最后一天
我有一个任务,使网站的文章统计数据库的结果为基础。我需要计算每月添加的文章数量,并将这些结果传递给JavaScript统计函数 我要做的第一件事是找到添加文章的整个时期:Php 查找时间段内每个月的第一天和最后一天,php,date,unix-timestamp,Php,Date,Unix Timestamp,我有一个任务,使网站的文章统计数据库的结果为基础。我需要计算每月添加的文章数量,并将这些结果传递给JavaScript统计函数 我要做的第一件事是找到添加文章的整个时期: SELECT MIN(date) as startdate FROM articles LIMIT 1 SELECT MAX(date) as enddate FROM articles LIMIT 1 现在我有了一个周期,它以$startDate开始,以$endDate结束。这些变量是unix时间戳,因为它们在数据库中
SELECT MIN(date) as startdate FROM articles LIMIT 1
SELECT MAX(date) as enddate FROM articles LIMIT 1
现在我有了一个周期,它以$startDate
开始,以$endDate
结束。这些变量是unix时间戳,因为它们在数据库中。数据库中的date
列也是unix时间戳
接下来,我将在foreach循环中查询每月添加的文章数量,如:
SELECT COUNT(id) as total FROM articles
WHERE date > ".$startMonth." AND date < ".$endMonth
结果:
月报
11-2010 13
12-2010 33您似乎可以通过使用
分组来实现这一点,如
SELECT date_format(`date`, '%Y-%m'), COUNT(id) as total
FROM articles
GROUP BY date_format(`date`, '%Y-%m');
您不需要日期边界…或者您可以简单地使用分组方式1
谢谢,然而,它选择所有文章的数量作为第一个月,尽管我在while循环中获取结果,并且在11月和12月添加了文章。@ajreal-那么如果我使用GROUP By和while循环,我只得到一个结果?如何将多个结果分组?@Laurencepter5-分组将对每个月的帖子进行分组,因此您只需循环查看每个帖子的结果month@ajreal它只返回一行:(请准确使用:selectdate\u格式(date,%Y-%m'),COUNT(*)按1从文章组总计;
可能这是所需的格式?选择日期\格式(日期,%M%Y'),按1从文章组总计计数(*);
选择列错误,请使用此选择日期\格式(日期,%Y-%M'),按1从文章组总计计数(*);
或选择日期\格式(日期,%M-%Y'),计数(*)文章组中的总计为1;
SELECT date_format(`date`, '%Y-%m'), COUNT(id) as total
FROM articles
GROUP BY date_format(`date`, '%Y-%m');