我正在尝试获取两个日期之间的次数。我提供了4种类型的信息:freq
,interval
,startDate
和endDate
。
例如:
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,因为有三个日期。
我正在尝试找到计数。
谢谢
答案 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类来实现。