colybri/business-day

此库允许您以简单的方式在Laravel应用程序中设置假日日历。

2.0.0 2021-12-07 16:36 UTC

This package is auto-updated.

Last update: 2024-09-08 00:39:51 UTC


README

此日期库扩展了 Date,它反过来又扩展了 Carbon 库。因此,这些库的所有功能也都可以使用。此库允许您以简单的方式在Laravel应用程序中设置假日日历。

使用composer安装

composer require colybri/business-day

Laravel 5

对于Laravel 5.5或更低版本,您必须使用此库的版本1。

Laravel版本兼容性

在Laravel 5.6或更高版本中,此包将自动发现,您可以安全地跳过以下两个步骤。将以下内容添加到config/app.php中的providers数组

Colybri\BusinessDay\BusinessDayServiceProvider::class,

您还可以将其添加为config/app.php中的外观

'BusinessDay' => Colybri\BusinessDay\BusinessDay::class,

配置

首先,您必须在config/business-day.php文件中配置您的假日日历选项。要编辑此包的默认配置,您可能需要执行以下操作

php artisan vendor:publish --provider="Colybri\BusinessDay\BusinessDayServiceProvider"
use Colybri\BusinessDay\BusinessDay;

$date = BusinessDay::now();

return [
 /*
  |--------------------------------------------------------------------------
  | Holidays calendar
  |--------------------------------------------------------------------------
  |
  */
  'restDay' => 0, //Sunday
  'saturdayIsBusinessDay' => "false",
  'holidays' => [
      "01-01",
      $date->easterSunday()->addDay()->config(),
      $date->goodFriday()->config(),
      "06-01",
      //vacational periods
      [
          "01-08", "31-08"
      ],
      [
          "24-12", "27-12"
      ],
      ...
  ],
];

将选项restDay设置为0将星期日设为假日。如果您不想默认使用这种行为,请将该字段设置为"false"。所有文字日期必须以"dd-mm"格式表示。如果您想使用此库中可用于移动假日的可用方法,必须在配置方法之后调用。您还可以通过开始和结束日期指示假期期间。

用法

BusinessDay类的函数列表

use Colybri\BusinessDay\BusinessDay;

$date = BusinessDay::now();
$date->isBusinessDay(); //return true or false
$date->nextBusinessDay();
$date->previousBusinessDay();

例如nextBusinessDaypreviousBusinessDay方法返回一个包含Date和Carbon库所有功能的BusinessDay对象。

天主教假日

可用于天主教移动假日的函数

$date = new BusinessDay('2000-01-31', 'Europe/Brussels');
$date->ashWednesday();
$date->palmSunday();
$date->maundyThursday();
$date->goodFriday();
$date->easterSunday();
$date->easterMonday();
$date->ascensionDay();
$date->pentecostSunday();
$date->pentecostMonday();

所有这些方法都返回一个包含Date和Carbon库所有功能的BusinessDay对象。

注意!在下一个版本中,我将尝试包括其他宗教移动假日。

许可

Laravel BusinessDay根据MIT许可(MIT)进行许可。