penance316/merger

Helper to merge date ranges together.

v1.3 2021-10-13 11:50 UTC

This package is auto-updated.

Last update: 2022-06-13 13:34:12 UTC


README

A PHP based date merger that combines overlapping continuous date ranges.

Available via composer

composer require penance316/merger

Usage

// Each date pair should consist of [earlierDate, laterDate].

$dates = [
    [new DateTime('2019-04-01'), new DateTime('2019-05-01')],
    [new DateTime('2019-05-01'), new DateTime('2019-06-01')],
    [new DateTime('2019-06-01'), new DateTime('2019-07-01')],
    [new DateTime('2019-07-01'), new DateTime('2019-08-01')],
    [new DateTime('2019-08-01'), new DateTime('2019-09-01')],
];

print_r(DateMerger::mergeRanges($dates));

// Output
// Array
// (
//     [0] => Array
//         (
//             [0] => DateTime Object
//                 (
//                     [date] => 2019-04-01 00:00:00.000000
//                     [timezone_type] => 3
//                     [timezone] => Europe/London
//                 )
// 
//             [1] => DateTime Object
//                 (
//                     [date] => 2019-09-01 00:00:00.000000
//                     [timezone_type] => 3
//                     [timezone] => Europe/London
//                 )
//
//         )
//
// )

License

MIT