用于计算周数的逻辑查询

时间:2013-05-14 10:41:07

标签: php logic weblogic week-number

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

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

我将此作为数据库的输入,然后创建图形。我使用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)

我想将2012年7月20日至2012年7月27日的期限取消。在此期间的文件。截至2013年2月15日。

2 个答案:

答案 0 :(得分: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)

按周计算分组是不够的,因为期间可能会在下一年重叠,所以我们也应该包括年份。

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

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

为您的网格/图表使用参考(年wk)和金额(docs)
例如2012wk1是4,2012wk3是1

答案 1 :(得分:-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/>";
    }