如何计算给定月份的周末数(碳对象)?

Nir*_*paz 2 datetime laravel-4

我试图计算给定月份有多少个周末(周六和周日)。这将允许我减去这些周末以获得我的应用程序所需的实际工作日数。

我现在正在做的是,首先我像这样创建了 Carbon 对象:

$thisDate = Carbon::createFromDate(2014, 12, 2);

然后,我在这样的 Carbon 对象的帮助下计算了一个月中落在上述日期内的天数

$daysInMonth = $thisDate->daysInMonth;

现在,我得到了一个月的天数。可以通过循环该月的每一天并检查它是否是周末(类似于 CarbonObject->isWeekday)并增加计数器来找到周末的数量,但它看起来很混乱。

有没有更优雅的方法来做到这一点?我的意思是 CarbonObject 中是否有我遗漏的更好的东西,它可以以更简单的方式给出结果?

注意:我正在 Laravel4.2 的帮助下创建我的应用程序

我也读过这个:(但想知道是否有碳方式解决方案) 获取给定月份的工作日数

Max*_*epl 5

您可以使用该diffInDaysFiltered()方法过滤使用该方法的天数isWeekend(),这将返回您所追求的结果。

$dt = Carbon::create(2014, 1, 1);
$dt2 = Carbon::create(2014, 12, 31);
$daysForExtraCoding = $dt->diffInDaysFiltered(function(Carbon $date) {
    return $date->isWeekend();
}, $dt2);

echo $daysForExtraCoding;
Run Code Online (Sandbox Code Playgroud)