我目前正在尝试计算期间数量(每个期间为1周,在特定日期或日期之后)。让我们说第一期从2013年1月1日(星期二)开始,直到2013年1月29日(星期二)(总共4个时期)。
我有一张表格如下:
id | startDate (datetime) | endDate (datetime)
我有两个输入字段,用户可以在其中填写start date
和end date
。我想填写01-01-2013
和29-01-2013
之间的任何日期,并决定它再次通过星期二(期间开始的日期)的次数。
因此,如果我选择01-01-2013 until 07-01-2013
会导致:1
,但如果我选择06-01-2013 till 09-01-2013
,则会导致2
和06-01-2013 till 16-01-2013
在3
等。
要明确的是,我不想知道两个日期之间的周数,只是知道它在数据库中给出的同一天(星期二)'过去'的次数。每个时期都是1周。有没有人可以帮助我?
答案 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;