Php 查找时间段内每个月的第一天和最后一天

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时间戳,因为它们在数据库中

我有一个任务,使网站的文章统计数据库的结果为基础。我需要计算每月添加的文章数量,并将这些结果传递给JavaScript统计函数

我要做的第一件事是找到添加文章的整个时期:

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');