Please note that Daylight Saving Time (DST) transitions only work as expected when using new \DateInterval(), not \DateInterval::createFromDateString().
<?php
$now = new \DateTimeImmutable("2025-03-29 13:00:00", new DateTimeZone('Europe/Berlin'));
var_dump($now);
/ 2025-03-29 13:00:00
var_dump($now->add(\DateInterval::createFromDateString('1440 minutes')));
/ 2025-03-30 13:00:00
var_dump($now->add(new \DateInterval('PT1440M')));
/ 2025-03-30 14:00:00
/ these are not equivalent:
var_dump(\DateInterval::createFromDateString('1440 minutes'));
var_dump(new \DateInterval('PT1440M'));
?>