计算某个日期之后的周数

时间:2013-03-11 16:03:34

标签: php mysql

我目前正在尝试计算期间数量(每个期间为1周,在特定日期或日期之后)。让我们说第一期从2013年1月1日(星期二)开始,直到2013年1月29日(星期二)(总共4个时期)。

我有一张表格如下:

id | startDate (datetime) | endDate (datetime)

我有两个输入字段,用户可以在其中填写start dateend date。我想填写01-01-201329-01-2013之间的任何日期,并决定它再次通过星期二(期间开始的日期)的次数。

因此,如果我选择01-01-2013 until 07-01-2013会导致:1,但如果我选择06-01-2013 till 09-01-2013,则会导致206-01-2013 till 16-01-20133等。

要明确的是,我不想知道两个日期之间的周数,只是知道它在数据库中给出的同一天(星期二)'过去'的次数。每个时期都是1周。有没有人可以帮助我?

2 个答案:

答案 0 :(得分:2)

使用PHP的date()功能。

$startday = strtotime($start_date_from_db);//date from db;
$endday = strtotime($end_date_from_db);//date from db;
$counter = 0;
for($i=$startday; $i<=$endday; $i+=86400) {
    $current_day = date('w', $i);
    if($current_day == 2) { //0 for sunday, 1 for monday, 2 for tuesday
        $counter++;
    }
}

答案 1 :(得分:1)

比较日期时,一个好的方法是:

1-将日期转换为时间戳:

$timestamp1 = strtotime($date1);
$timestamp2 = strtotime($date2);

2-执行所需的操作,在这种情况下:

$timebetween = $timestamp2 - $timestamp1;

3-将结果(秒数)转换为所需的值,在这种情况下:

$weeks= $timebetween / 604800;