crtl / openings
此包提供了确定如商店或餐馆开业等开业的基礎功能。
1.1.0
2019-12-11 09:13 UTC
Requires
- php: >=5.4
Requires (Dev)
- phpunit/phpunit: ^6.0
This package is auto-updated.
Last update: 2024-09-11 19:35:55 UTC
README
此包提供了确定如商店或餐馆开业等开业的基礎功能。
功能
- 以簡單的數組語法提供開業信息
- 處理特別開業,如節假日、聖誕節等。
安裝
composer require crtl/openings
示例/用法
格式
開業和開業異常必須符合以下格式
[ "key" => ["H:i-H:i", "H:i-H:i"], "key1, key1 , keyN" => ["H:i-H:i"], "key-key" => ["H:i-H:i"] ]
其中 key 是以下日期格式之一
D
表示開業Y/m/d
表示開業異常
用法
<?php use Crtl\Openings\OpeningsManager; use Crtl\Openings\Exceptions\InvalidFormatException; require_once(__DIR__ . "/vendor/autoload.php"); //Define openings $openings = [ "Mon-Fri" => ["08:00-12:00", "14:30-19:00"], "Sat" => ["10:00-16:00"], "Sun" => [] //Closed, you can also asign any other false value ]; //Define opening exceptions $exceptions = [ "2017/12/24-2018/01/01" => [], //Closed from 2017/12/24 to 2018/01/01 "2018/01/02" => ["10:00-14:00"] ]; //Create instance try { $openingsManager = new OpeningsManager($openings, $exceptions); } catch (InvalidFormatException $ex) { die($ex->getMessage()); //Invalid format supplied either for keys or values } $openingsManager->isOpen() //same as $openingsManager->isOpen(new DateTime()); $openingsManager->isOpen($myDateTime); $date = new \DateTime("2017-12-24 10:00:00"); $openingsManager->isOpen($date) $nextWeek = new \DateTime("09:00:00"); $nextWeek->add(new \DateInterval("P1W")); $openingsManager->isOpen($nextWeek);