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);
Output for 8.2.0 - 8.2.29, 8.3.0 - 8.3.25, 8.4.1 - 8.4.12
DateInterval Object ( [y] => 1 [m] => 1 [d] => 17 [h] => 7 [i] => 44 [s] => 47 [f] => 0 [invert] => 0 [days] => 410 [from_string] => ) DateTime Object ( [date] => 2014-02-16 02:00:00.000000 [timezone_type] => 3 [timezone] => Europe/Amsterdam ) DateTime Object ( [date] => 2014-02-13 02:00:00.000000 [timezone_type] => 3 [timezone] => Europe/Amsterdam )
Output for 7.1.0 - 7.1.33, 7.2.0 - 7.2.34, 7.3.0 - 7.3.31, 7.4.0 - 7.4.33, 8.0.0 - 8.0.12, 8.0.14 - 8.0.30, 8.1.0 - 8.1.33
DateInterval Object ( [y] => 1 [m] => 1 [d] => 17 [h] => 7 [i] => 44 [s] => 47 [f] => 0 [weekday] => 0 [weekday_behavior] => 0 [first_last_day_of] => 0 [invert] => 0 [days] => 410 [special_type] => 0 [special_amount] => 0 [have_weekday_relative] => 0 [have_special_relative] => 0 ) DateTime Object ( [date] => 2014-02-16 02:00:00.000000 [timezone_type] => 3 [timezone] => Europe/Amsterdam ) DateTime Object ( [date] => 2014-02-13 02:00:00.000000 [timezone_type] => 3 [timezone] => Europe/Amsterdam )
Output for 7.3.32 - 7.3.33, 8.0.13
DateInterval Object ( [y] => 1 [m] => 1 [d] => 17 [h] => 7 [i] => 44 [s] => 47 [f] => 0 [weekday] => 0 [weekday_behavior] => 0 [first_last_day_of] => 0 [invert] => 0 [days] => 410 [special_type] => 0 [special_amount] => 0 [have_weekday_relative] => 0 [have_special_relative] => 0 ) DateTime Object ( [date] => 2014-02-16 02:00:00.000000 [timezone_type] => 3 [timezone] => UTC ) DateTime Object ( [date] => 2014-02-13 02:00:00.000000 [timezone_type] => 3 [timezone] => UTC )
Output for 5.4.30 - 5.4.45, 5.5.14 - 5.5.38, 5.6.0 - 5.6.40, 7.0.0 - 7.0.33
DateInterval Object ( [y] => 1 [m] => 1 [d] => 17 [h] => 7 [i] => 44 [s] => 47 [weekday] => 0 [weekday_behavior] => 0 [first_last_day_of] => 0 [invert] => 0 [days] => 410 [special_type] => 0 [special_amount] => 0 [have_weekday_relative] => 0 [have_special_relative] => 0 ) DateTime Object ( [date] => 2014-02-16 02:00:00.000000 [timezone_type] => 3 [timezone] => Europe/Amsterdam ) DateTime Object ( [date] => 2014-02-13 02:00:00.000000 [timezone_type] => 3 [timezone] => Europe/Amsterdam )
Output for 5.3.27 - 5.3.29, 5.4.17 - 5.4.29, 5.5.0 - 5.5.13
DateInterval Object ( [y] => 1 [m] => 1 [d] => 17 [h] => 7 [i] => 44 [s] => 47 [weekday] => 0 [weekday_behavior] => 0 [first_last_day_of] => 0 [invert] => 0 [days] => 410 [special_type] => 0 [special_amount] => 0 [have_weekday_relative] => 0 [have_special_relative] => 0 ) DateTime Object ( [date] => 2014-02-16 02:00:00 [timezone_type] => 3 [timezone] => Europe/Amsterdam ) DateTime Object ( [date] => 2014-02-13 02:00:00 [timezone_type] => 3 [timezone] => Europe/Amsterdam )
Output for 5.3.3 - 5.3.26, 5.4.0 - 5.4.16
DateInterval Object ( [y] => 1 [m] => 1 [d] => 17 [h] => 7 [i] => 44 [s] => 47 [invert] => 0 [days] => 410 ) DateTime Object ( [date] => 2014-02-16 02:00:00 [timezone_type] => 3 [timezone] => Europe/Amsterdam ) DateTime Object ( [date] => 2014-02-13 02:00:00 [timezone_type] => 3 [timezone] => Europe/Amsterdam )
Output for 5.3.0 - 5.3.2
DateInterval Object ( [y] => 1 [m] => 1 [d] => 14 [h] => 7 [i] => 44 [s] => 47 [invert] => 0 [days] => 410 ) DateTime Object ( [date] => 2014-02-16 02:00:00 [timezone_type] => 3 [timezone] => Europe/Amsterdam ) DateTime Object ( [date] => 2014-02-16 02:00:00 [timezone_type] => 3 [timezone] => Europe/Amsterdam )
Output for 5.2.10 - 5.2.17
Fatal error: Call to undefined method DateTime::createFromFormat() in /in/mUeRk on line 5
Process exited with code 255.
Output for 5.2.0 - 5.2.9
Fatal error: Call to undefined method DateTime::createfromformat() in /in/mUeRk on line 5
Process exited with code 255.
Output for 5.0.0 - 5.0.5, 5.1.0 - 5.1.6
Fatal error: Class 'DateTime' not found in /in/mUeRk on line 5
Process exited with code 255.
Output for 4.3.2 - 4.3.11, 4.4.0 - 4.4.9
Fatal error: Undefined class name 'datetime' in /in/mUeRk on line 5
Process exited with code 255.
Output for 4.3.0 - 4.3.1
Fatal error: Undefined class name 'datetime' in /in/mUeRk on line 5

preferences:
147.99 ms | 422 KiB | 5 Q