PHP code example of chmielewskitomasz / ranges

1. Go to this page and download the library: Download chmielewskitomasz/ranges library. Choose the download type require.

2. Extract the ZIP file and open the index.php.

3. Add this code to the index.php.
    
        
<?php
require_once('vendor/autoload.php');

/* Start to develop here. Best regards https://php-download.com/ */

    

chmielewskitomasz / ranges example snippets




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
                )

        )

)




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
                )

        )

)