Skip to content

penance316/merger

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

10 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DateMerger Build Status

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