3v4l.org

run code in 300+ PHP versions simultaneously
<?php function check_date($a1,$a2,$a3,$a4) { global $error; try { $date = DateTime::createFromFormat('d/m/Y', $a1); if ($date === false || $date->format('d/m/Y') !== $a1) throw new Exception('Invalid date'); } catch (Throwable $e) { echo "ERROR - Row ($a2) - Column ($a4) - {$e->getMessage()} $a3: \"$a1\"</br>" . PHP_EOL; $error = 1 ; } } check_date("\0", 1, "ISSUE_DATE", 'Start date'); check_date('20/01/2023', 2, "ISSUE_DATE", 'Start date'); check_date('3/4/2023', 3, "ISSUE_DATE", 'Start date'); check_date('2023-01-20', 4, "ISSUE_DATE", 'Start date'); check_date('', 5, "ISSUE_DATE", 'Start date'); check_date('a', 6, "ISSUE_DATE", 'Start date');
Output for git.master, git.master_jit, rfc.property-hooks
ERROR - Row (1) - Column (Start date) - DateTime::createFromFormat(): Argument #2 ($datetime) must not contain any null bytes ISSUE_DATE: ""</br> ERROR - Row (3) - Column (Start date) - Invalid date ISSUE_DATE: "3/4/2023"</br> ERROR - Row (4) - Column (Start date) - Invalid date ISSUE_DATE: "2023-01-20"</br> ERROR - Row (5) - Column (Start date) - Invalid date ISSUE_DATE: ""</br> ERROR - Row (6) - Column (Start date) - Invalid date ISSUE_DATE: "a"</br>

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:
52.05 ms | 406 KiB | 5 Q