3v4l.org

run code in 300+ PHP versions simultaneously
<?php $today = DateTime::createFromFormat('d.m.Y', '17.06.2019'); $dates = [ '17.06.2016', '19.06.2016', '15.06.2016', ]; foreach ($dates as $date) { $mpsAgeT = DateTime::createFromFormat('d.m.Y', $date); $diff = $today->diff($mpsAgeT); $years = $diff->y; if (addOne($diff)) { $years++; } /* 17.06.2019 and 17.06.2016 - should returns me 3 17.06.2019 and 19.06.2016 - should returns me 3 17.06.2019 and 15.06.2016 - should returns me 4 */ print $date . " -> " . $years . "\n"; } function addOne($interval) { $props = ['m', 'd']; foreach ($props as $prop) { if ($interval->{$prop} !== 0) return true; } return false; }
Output for 7.1.25 - 7.1.30, 7.2.0 - 7.2.33, 7.3.0 - 7.3.33, 7.4.0 - 7.4.33, 8.0.0 - 8.0.30, 8.1.0 - 8.1.33, 8.2.0 - 8.2.29, 8.3.0 - 8.3.27, 8.4.1 - 8.4.14
17.06.2016 -> 3 19.06.2016 -> 3 15.06.2016 -> 4

preferences:
145.17 ms | 407 KiB | 5 Q