chmielewskitomasz / ranges
管理时间范围(求和 & 减去)的简单工具。无需任何依赖
1.0.1
2018-08-07 14:11 UTC
Requires
- php: ^7.2
Requires (Dev)
- friendsofphp/php-cs-fixer: ^2.8
- phpspec/phpspec: ^4.3
- phpstan/phpstan: ^0.9.2
- phpunit/phpunit: ^6.0.8 || ^5.7.15
- squizlabs/php_codesniffer: ^2.8.1
This package is not auto-updated.
Last update: 2024-09-23 06:30:28 UTC
README
这个工具能帮我解决什么问题?
使用这个工具,您可以
- 添加多个时间范围
- 减去多个时间范围
如何使用这个工具?
很简单...
要添加范围,只需...
require_once __DIR__ . '/vendor/autoload.php'; use Hop\Ranges\Range; use Hop\Ranges\StdRangesCalculator; $range1 = new Range( new \DateTime('2018-01-01 00:00:00'), new \DateTime('2018-01-02 00:05:00') ); $range2 = new Range( new \DateTime('2018-01-02 00:06:00'), new \DateTime('2018-01-02 00:07:00') ); $range3 = new Range( new \DateTime('2018-01-02 00:06:30'), new \DateTime('2018-01-02 00:10:00') ); $calculator = new StdRangesCalculator(); $ranges = $calculator->sum( $range1, $range2, $range3 ); print_r($ranges); // prints out Array ( [0] => Hop\Ranges\Range Object ( [dateFrom:Hop\Ranges\Range:private] => DateTime Object ( [date] => 2018-01-01 00:00:00.000000 [timezone_type] => 3 [timezone] => UTC ) [dateTo:Hop\Ranges\Range:private] => DateTime Object ( [date] => 2018-01-02 00:05:00.000000 [timezone_type] => 3 [timezone] => UTC ) ) ----> // this is merged! [1] => Hop\Ranges\Range Object ( [dateFrom:Hop\Ranges\Range:private] => DateTime Object ( [date] => 2018-01-02 00:06:00.000000 [timezone_type] => 3 [timezone] => UTC ) [dateTo:Hop\Ranges\Range:private] => DateTime Object ( [date] => 2018-01-02 00:10:00.000000 [timezone_type] => 3 [timezone] => UTC ) ) )
要减去范围,请做...
require_once __DIR__ . '/vendor/autoload.php'; use Hop\Ranges\Range; use Hop\Ranges\StdRangesCalculator; $range1 = new Range( new \DateTime('2018-01-01 00:00:00'), new \DateTime('2018-01-05 00:05:00') ); $range2 = new Range( new \DateTime('2018-01-02 00:06:00'), new \DateTime('2018-01-02 00:07:00') ); $calculator = new StdRangesCalculator(); $ranges = $calculator->sub( $range1, $range2 ); print_r($ranges); // prints out Array ( [0] => Hop\Ranges\Range Object ( [dateFrom:Hop\Ranges\Range:private] => DateTime Object ( [date] => 2018-01-01 00:00:00.000000 [timezone_type] => 3 [timezone] => UTC ) [dateTo:Hop\Ranges\Range:private] => DateTime Object ( [date] => 2018-01-02 00:05:59.000000 [timezone_type] => 3 [timezone] => UTC ) ) [1] => Hop\Ranges\Range Object ( [dateFrom:Hop\Ranges\Range:private] => DateTime Object ( [date] => 2018-01-02 00:07:01.000000 [timezone_type] => 3 [timezone] => UTC ) [dateTo:Hop\Ranges\Range:private] => DateTime Object ( [date] => 2018-01-05 00:05:00.000000 [timezone_type] => 3 [timezone] => UTC ) ) )
享受吧!
© Tomasz Chmielewski