3v4l.org

run code in 300+ PHP versions simultaneously
<?php function validateDate($date, $format = 'Y-m-d H:i:s') { $d = DateTime::createFromFormat($format, $date); var_dump($d); echo $d->format($format); echo $date; echo $d && $d->format($format) == $date; return; } validateDate('2012-02-30 12:12:12'); validateDate('30/02/2012', 'd/m/Y'); validateDate('14:77', 'H:i'); validateDate('2012-02-28 12:12:12');
Output for 7.0.0 - 7.0.20, 7.1.0 - 7.1.33, 7.2.0 - 7.2.33, 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.28, 8.2.0 - 8.2.18, 8.3.0 - 8.3.4, 8.3.6
object(DateTime)#1 (3) { ["date"]=> string(26) "2012-03-01 12:12:12.000000" ["timezone_type"]=> int(3) ["timezone"]=> string(16) "Europe/Amsterdam" } 2012-03-01 12:12:122012-02-30 12:12:12object(DateTime)#1 (3) { ["date"]=> string(26) "2012-03-01 18:20:44.000000" ["timezone_type"]=> int(3) ["timezone"]=> string(16) "Europe/Amsterdam" } 01/03/201230/02/2012object(DateTime)#1 (3) { ["date"]=> string(26) "2017-06-14 15:17:00.000000" ["timezone_type"]=> int(3) ["timezone"]=> string(16) "Europe/Amsterdam" } 15:1714:77object(DateTime)#1 (3) { ["date"]=> string(26) "2012-02-28 12:12:12.000000" ["timezone_type"]=> int(3) ["timezone"]=> string(16) "Europe/Amsterdam" } 2012-02-28 12:12:122012-02-28 12:12:121
Output for 8.3.5
Warning: PHP Startup: Unable to load dynamic library 'sodium.so' (tried: /usr/lib/php/8.3.5/modules/sodium.so (libsodium.so.23: cannot open shared object file: No such file or directory), /usr/lib/php/8.3.5/modules/sodium.so.so (/usr/lib/php/8.3.5/modules/sodium.so.so: cannot open shared object file: No such file or directory)) in Unknown on line 0 object(DateTime)#1 (3) { ["date"]=> string(26) "2012-03-01 12:12:12.000000" ["timezone_type"]=> int(3) ["timezone"]=> string(16) "Europe/Amsterdam" } 2012-03-01 12:12:122012-02-30 12:12:12object(DateTime)#1 (3) { ["date"]=> string(26) "2012-03-01 18:20:44.000000" ["timezone_type"]=> int(3) ["timezone"]=> string(16) "Europe/Amsterdam" } 01/03/201230/02/2012object(DateTime)#1 (3) { ["date"]=> string(26) "2017-06-14 15:17:00.000000" ["timezone_type"]=> int(3) ["timezone"]=> string(16) "Europe/Amsterdam" } 15:1714:77object(DateTime)#1 (3) { ["date"]=> string(26) "2012-02-28 12:12:12.000000" ["timezone_type"]=> int(3) ["timezone"]=> string(16) "Europe/Amsterdam" } 2012-02-28 12:12:122012-02-28 12:12:121
Output for 7.3.32 - 7.3.33, 8.0.13
object(DateTime)#1 (3) { ["date"]=> string(26) "2012-03-01 12:12:12.000000" ["timezone_type"]=> int(3) ["timezone"]=> string(3) "UTC" } 2012-03-01 12:12:122012-02-30 12:12:12object(DateTime)#1 (3) { ["date"]=> string(26) "2012-03-01 16:20:44.000000" ["timezone_type"]=> int(3) ["timezone"]=> string(3) "UTC" } 01/03/201230/02/2012object(DateTime)#1 (3) { ["date"]=> string(26) "2017-06-14 15:17:00.000000" ["timezone_type"]=> int(3) ["timezone"]=> string(3) "UTC" } 15:1714:77object(DateTime)#1 (3) { ["date"]=> string(26) "2012-02-28 12:12:12.000000" ["timezone_type"]=> int(3) ["timezone"]=> string(3) "UTC" } 2012-02-28 12:12:122012-02-28 12:12:121

preferences:
175.31 ms | 403 KiB | 217 Q