3v4l.org

run code in 300+ PHP versions simultaneously
<?php $timezoneUtc = new DateTimeZone('UTC'); $timezoneBerlin = new DateTimeZone('Europe/Berlin'); $timezoneAmsterdam = new DateTimeZone('Europe/Amsterdam'); $dateTimeA = new DateTimeImmutable('2025-03-30 00:00:00', $timezoneUtc); $dateTimeB = new DateTimeImmutable('2025-03-31 00:00:00', $timezoneUtc); $dateTimeC = new DateTimeImmutable('2025-03-29 00:00:00', $timezoneBerlin); $dateTimeD = new DateTimeImmutable('2025-03-31 00:00:00', $timezoneBerlin); $dateTimeE = new DateTimeImmutable('2025-03-29 00:00:00', $timezoneAmsterdam); $dateTimeF = new DateTimeImmutable('2025-03-31 00:00:00', $timezoneAmsterdam); function toIntervalSpecification(DateInterval $interval): string { $specification = 'P'; $specification .= $interval->y ? $interval->y . 'Y' : ''; $specification .= $interval->m ? $interval->m . 'M' : ''; $specification .= $interval->d ? $interval->d . 'D' : ''; if ($interval->h ?? $interval->i ?? $interval->s ?? 0) { $specification .= 'T'; $specification .= $interval->h ? $interval->h . 'H' : ''; $specification .= $interval->i ? $interval->i . 'M' : ''; $specification .= $interval->s ? $interval->s . 'S' : ''; } if ($specification[-1] === 'P') { $specification = 'PT0S'; } return $specification; } $diffTwoTimezoneSameDstRulesA = $dateTimeC->diff($dateTimeF, true); $diffTwoTimezoneSameDstRulesB = $dateTimeF->diff($dateTimeC, true); $diffTwoTimezoneSameDstRulesC = $dateTimeE->diff($dateTimeD, true); $diffTwoTimezoneSameDstRulesD = $dateTimeD->diff($dateTimeE, true); echo toIntervalSpecification($diffTwoTimezoneSameDstRulesA) . PHP_EOL; echo toIntervalSpecification($diffTwoTimezoneSameDstRulesB) . PHP_EOL; echo toIntervalSpecification($diffTwoTimezoneSameDstRulesC) . PHP_EOL; echo toIntervalSpecification($diffTwoTimezoneSameDstRulesD) . PHP_EOL;
Output for git.master_jit, git.master
P1DT23H P1DT23H P1DT23H P1DT23H

This tab shows result from various feature-branches currently under review by the php developers. Contact me to have additional branches featured.

Active branches

Archived branches

Once feature-branches are merged or declined, they are no longer available. Their functionality (when merged) can be viewed from the main output page


preferences:
31.03 ms | 405 KiB | 5 Q