3v4l.org

run code in 300+ PHP versions simultaneously
<?php $DF_MYSQL = 'Y-m-d H:i:s'; $dtB = DateTime::createFromFormat($DF_MYSQL, '2015-04-02 09:44:47'); $dtA = DateTime::createFromFormat($DF_MYSQL, '2014-02-16 02:00:00'); // DateInterval: B-A $diDiff = $dtA->diff($dtB); // Unix Timestamp: B-A $tsDiff = $dtB->getTimestamp() - $dtA->getTimestamp(); // REPORT DIFFERENCES /* NOTE: DIFFERENCE B-A IS $y => 1 $m => 1 $d => 17 $h => 7 $i => 44 $s => 47 */ print_r($diDiff); // Unix Timestamp: CALCULATE A FROM (B - DIFFERENCE) AND REPORT // NOTE: CORRECT RESULT, SAME AS $dtA: 2014-02-16 02:00:00 $tsShift = $dtB->getTimestamp() - $tsDiff; $dtOut = new DateTime(); $dtOut->setTimestamp($tsShift); print_r($dtOut); // DateInterval: CALCULATE A FROM (B - DIFFERENCE) AND REPORT // NOTE: INCORRECT RESULT, DIFFERENT FROM $dtA: 2014-02-13 02:00:00 $dtB->sub($diDiff); print_r($dtB);

preferences:
24.54 ms | 404 KiB | 5 Q