在日常开发中,经常遇到需要处理工作日和营业时间的需求。例如,计算一个任务的截止日期,需要排除周末和节假日;或者需要判断当前时间是否在营业时间内。这些看似简单的需求,如果手动实现,往往需要编写大量的代码,并且容易出错。
cmixin/business-time
cmixin/business-time
Composer在线学习地址:学习地址
假设你需要开发一个在线预约系统,该系统需要:
如果没有
cmixin/business-time
cmixin/business-time
安装 cmixin/business-time
<pre class="brush:php;toolbar:false;">composer require cmixin/business-time
启用 BusinessTime
在应用的启动文件中(例如 Laravel 的
app/Providers/AppServiceProvider.php
<pre class="brush:php;toolbar:false;"><?php
use Carbon\Carbon;
use Cmixin\BusinessTime;
BusinessTime::enable(Carbon::class, [
'monday' => ['09:00-12:00', '13:00-18:00'],
'tuesday' => ['09:00-12:00', '13:00-18:00'],
'wednesday' => ['09:00-12:00'],
'thursday' => ['09:00-12:00', '13:00-18:00'],
'friday' => ['09:00-12:00', '13:00-20:00'],
'saturday' => ['09:00-12:00', '13:00-16:00'],
'sunday' => [],
'exceptions' => [
'2023-12-25' => [], // 圣诞节关闭
'01-01' => [], // 元旦关闭
],
'holidaysAreClosed' => true, // 默认节假日关闭
'holidays' => [
'region' => 'cn-national', // 使用中国国家节假日
],
]);这段代码启用了
BusinessTime
使用 BusinessTime
<pre class="brush:php;toolbar:false;">use Carbon\Carbon;
$appointmentTime = Carbon::parse('2024-01-01 10:00');
if ($appointmentTime->isBusinessDay() && $appointmentTime->isOpen()) {
echo "预约时间可用";
} else {
echo "预约时间不可用";
}这段代码使用
isBusinessDay()
isOpen()
cmixin/business-time
使用
cmixin/business-time
cmixin/business-time
总之,
cmixin/business-time
cmixin/business-time
以上就是使用cmixin/business-time轻松处理Carbon的工作时间和节假日的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号