datetime - 如何计算给定月份的周末数(Carbon Object)?

标签 datetime laravel-4

我想计算给定月份有多少个周末(周六和周日)。这将允许我减去这些周末以获得我的申请中所需的实际工作日数。

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

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

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

$daysInMonth = $thisDate->daysInMonth;

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

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

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

我也看过这个:(但想知道是否有 Carbon-way 解决方案) Get number of weekdays in a given month

最佳答案

您可以使用 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;

关于datetime - 如何计算给定月份的周末数(Carbon Object)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27773158/

相关文章:

c# - 如何通过在 linq 查询中选择将天数添加到日期时间

mysql - 减去日期时间以在 MySQL 中获取天数和小时数

authentication - 带有 Route::resource 的“auth”中间件

php - 从 Controller 访问模型 - Laravel 4

unit-testing - laravel 4 mock 模拟模型关系

php - 每月佣金计算 PHP

python - 在 Django 中从 CSV 上传任何日期时间

mysql - 显式日期/日期时间转换

php - Laravel 4 Eloquent 选择

regex - Laravel 不区分大小写的路由