获取两个日期之间的出现次数/时间

时间:2019-03-05 00:47:34

标签: php date datetime time calendar

我正在尝试获取两个日期之间的次数。我提供了4种类型的信息:freqintervalstartDateendDate

例如:

freq = weekly
interval = 1
startDate = 2019-03-10
endDate = 2019-03-24

我正在尝试使用给定的信息获取这两个日期之间的时间/日期/事件的数量。 (计数或事件数)

在此示例中,由于频率为weekly,并且间隔为1,所以这意味着每1周在startDate上重复一次该事件。如果间隔更改为2,则间隔为2周。如果将频率更改为每天一次,并且间隔为3,则间隔为3天。

在此示例中,第一个事件将在2019-03-10上,然后第二个事件将在2019-03-17上,然后第三个事件将在2019-03-24上。在此示例中, count 为3,因为有三个日期。

我正在尝试找到计数

谢谢

1 个答案:

答案 0 :(得分:1)

好吧,如果您使用Datetime类或Carbon,则可以轻松遍历这些日期之间的天/周/月。例如,如果您的freq = weekly并且interval = 1,则根据您提供的startDate和endDate,代码将如下所示:


use Carbon\Carbon;

$startDate = Carbon::create(2019,03,10,0,0);

$endDate =  Carbon::create(2019,03,24,0,0);

$count = 0;

while(! $startDate->greaterThan($endDate) ) 
{
     $count += 1;

     if($freq === 'weekly')
     {
        $startDate->addWeeks($interval);
     }
     else if($freq === 'monthly') 
     {
        $stardDate->addMonths($interval);
     }
}

在此示例中,我使用了碳纤维,因为它可以节省大量时间,但是您可以使用PHP Datetime类来实现。