1

我要求用户在某个应用程序中输入开始和结束日期。然后我计算没有。这两个日期之间的几周。

我想获取在给定时间段内每周创建的文档。我无法实现一个逻辑来帮助我获取第一周、第二周、第三周等等。

我将使用它作为数据库的输入,然后创建图形。我使用 php 作为服务器端语言。任何人都可以向我推荐算法。

前任:

Start date: 20/07/2012

End Date: 19/02/2013.

Total no. of days: 214.

Total no. of weeks: 30 (30 weeks and 4 days)

我想获取 20/07/2012 到 27/07/2012 的时间段,没有。在此期间的 Docs。至 2013 年 2 月 15 日。

4

2 回答 2

0

这里没有看到您的数据库结构是您需要的示例

SELECT YEAR(doc_created) AS report_year, WEEKOFYEAR(doc_created) AS report_week, COUNT(*) AS doc_count
FROM documents
WHERE doc_created BETWEEN '2012-07-20' AND '2013-07-19'
GROUP BY YEAR(doc_created), WEEKOFYEAR(doc_created)

按 weekofyear 分组是不够的,因为 period 可能与下一年重叠,所以我们还应该包括 year。

possible results:  
year  week  docs  
2012  1     4  
2012  3     1  
2013  1     65  
2013  2     4  

如您所见,如果我们只使用周数,2012 年第 1 周将与 2013 年第 1 周重叠。

对于您的网格/图表,请使用参考(周年)和金额(文档)
,例如 2012wk1 是 4,2012wk3 是 1

于 2013-05-14T10:53:25.080 回答
-1
Try this code:



     $start_date    =   "20-07-2012";
    $end_date   =   "20-08-2012 ";

    while($start_date){
        if(strtotime($start_date) > strtotime($end_date)){
            exit;
        }
        $start_date =   strtotime("+7 day", strtotime($start_date));
        $start_date =   date("d-m-Y", $start_date);
        echo $start_date;
        echo "<br/>";
    }
于 2013-05-14T11:15:51.103 回答