Php 用于计算周数的逻辑查询

Php 用于计算周数的逻辑查询,php,logic,weblogic,week-number,Php,Logic,Weblogic,Week Number,我要求用户在某个应用程序中输入开始和结束日期。然后我计算这两个日期之间的周数 我想获取给定时间段内每周创建的文档。 我无法实现一个逻辑来帮助我获取第一周、第二周、第三周等等 我将使用它作为数据库的输入,然后创建图形。我使用php作为服务器端语言。任何人都可以向我推荐算法 ex: Start date: 20/07/2012 End Date: 19/02/2013. Total no. of days: 214. Total no. of weeks: 30 (30 weeks and 4

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

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

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

ex:

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)

我想获取2012年7月20日至2012年7月27日期间的文件数量。直到2013年2月15日。

在没有看到您的数据库结构的情况下,这里是您所需的示例

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)
按周和年分组是不够的,因为期间可能与下一年重叠,所以我们还应该包括年份

possible results:  
year  week  docs  
2012  1     4  
2012  3     1  
2013  1     65  
2013  2     4  
如你们所见,若我们只使用周数,2012年第一周将与2013年第一周重叠

对于您的表格/图表,请使用参考(年工作周)和金额(单据)
e、 g.2012wk1是4,2012wk3是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/>";
    }
$start_date=“20-07-2012”; $end_date=“20-08-2012”; while($start\u date){ if(strotime($start_date)>strotime($end_date)){ 出口 } $start_date=strottime(+7天),strottime($start_date)); $start_date=日期(“d-m-Y”,$start_date); echo$start_日期; 回声“
”; }
使用聚合函数,如count()和group by year and week of year我处理了数据库元素,我需要算法在我创建的图形图像中实现这些细节。目前,我只能打印单日选择的文档数量。上述查询将给出每周的
报告年、报告周、文档计数
,因此不需要算法,只需将数字插入网格或图像即可。(签出)strotime()在英国日期无法正常工作。如果可能的话,它会假设是我们。所以2012年3月1日将是1月3日,而不是3月1日。使用退出停止一段时间循环?你是认真的吗?!