3v4l.org

run code in 300+ PHP versions simultaneously
<?php class DTBug { private $intervals = [ '1min' => null, '1day' => null, '1wk' => null, ]; private $inspectCalc; public function __construct(bool $inspectStored=false, bool $inspectCalc=false) { $this->inspectCalc = $inspectCalc; $this->intervals['1min'] = new \DateInterval("PT1M"); $this->intervals['1day'] = new \DateInterval("P1D"); $this->intervals['1wk'] = new \DateInterval("P7D"); if ($inspectStored) { array_map(function($s) { var_export($s, true); }, $this->intervals); } } public function compare(DateTimeInterface $start, DateTimeInterface $end) { $diff = $start->diff($end, true); if ($this->inspectCalc) { var_export($diff, true); } if ($diff < $this->intervals['1min']) { $op = "less than a minute"; } elseif ($diff < $this->intervals['1day']) { $op = "between an minute and a day"; } elseif ($diff < $this->intervals['1wk']) { $op = "between a day and a week"; } else { $op = "greater than a week"; } $this->output($start, $end, $op); } private function output(DateTimeInterface $start, DateTimeInterface $end, string $op) { echo $start->format("Y-m-d H:i:s")." is ".$op." from ".$end->format("Y-m-d H:i:s")."\n"; } } echo "\nTesting without looking at the intervals:\n"; $bug = new DTBug; $bug->compare(new DateTimeImmutable("2016-05-16 09:12:32"), new DateTimeImmutable("2016-05-16 09:13:35")); // 1min 3sec $bug->compare(new DateTimeImmutable("2016-05-16 09:12:32"), new DateTimeImmutable("2016-05-16 12:13:35")); // 3hrs 1min 3sec $bug->compare(new DateTimeImmutable("2016-05-16 09:12:32"), new DateTimeImmutable("2016-05-18 09:13:35")); // 2day 1min 3sec $bug->compare(new DateTimeImmutable("2016-05-16 09:12:32"), new DateTimeImmutable("2016-07-16 09:13:35")); // 2mon 1min 3sec echo "\nTesting whilst looking at the stored intervals:\n"; $debug = new DTBug(true); $debug->compare(new DateTimeImmutable("2016-05-16 09:12:32"), new DateTimeImmutable("2016-05-16 09:13:35")); // 1min 3sec $debug->compare(new DateTimeImmutable("2016-05-16 09:12:32"), new DateTimeImmutable("2016-05-16 12:13:35")); // 3hrs 1min 3sec $debug->compare(new DateTimeImmutable("2016-05-16 09:12:32"), new DateTimeImmutable("2016-05-18 09:13:35")); // 2day 1min 3sec $debug->compare(new DateTimeImmutable("2016-05-16 09:12:32"), new DateTimeImmutable("2016-07-16 09:13:35")); // 2mon 1min 3sec echo "\nTesting whilst looking at the calculated intervals only:\n"; $debug = new DTBug(false, true); $debug->compare(new DateTimeImmutable("2016-05-16 09:12:32"), new DateTimeImmutable("2016-05-16 09:13:35")); // 1min 3sec $debug->compare(new DateTimeImmutable("2016-05-16 09:12:32"), new DateTimeImmutable("2016-05-16 12:13:35")); // 3hrs 1min 3sec $debug->compare(new DateTimeImmutable("2016-05-16 09:12:32"), new DateTimeImmutable("2016-05-18 09:13:35")); // 2day 1min 3sec $debug->compare(new DateTimeImmutable("2016-05-16 09:12:32"), new DateTimeImmutable("2016-07-16 09:13:35")); // 2mon 1min 3sec echo "\nTesting whilst looking at the both intervals:\n"; $debug = new DTBug(true, true); $debug->compare(new DateTimeImmutable("2016-05-16 09:12:32"), new DateTimeImmutable("2016-05-16 09:13:35")); // 1min 3sec $debug->compare(new DateTimeImmutable("2016-05-16 09:12:32"), new DateTimeImmutable("2016-05-16 12:13:35")); // 3hrs 1min 3sec $debug->compare(new DateTimeImmutable("2016-05-16 09:12:32"), new DateTimeImmutable("2016-05-18 09:13:35")); // 2day 1min 3sec $debug->compare(new DateTimeImmutable("2016-05-16 09:12:32"), new DateTimeImmutable("2016-07-16 09:13:35")); // 2mon 1min 3sec

Here you find the average performance (time & memory) of each version. A grayed out version indicates it didn't complete successfully (based on exit-code).

VersionSystem time (s)User time (s)Memory (MiB)
8.3.60.0080.01516.88
8.3.50.0140.00522.02
8.3.40.0090.00619.02
8.3.30.0090.00618.95
8.3.20.0080.00021.09
8.3.10.0040.00421.90
8.3.00.0030.00520.99
8.2.180.0160.00716.75
8.2.170.0030.01222.96
8.2.160.0040.01220.36
8.2.150.0100.00724.18
8.2.140.0040.00424.66
8.2.130.0040.00426.16
8.2.120.0060.00319.08
8.2.110.0000.01020.94
8.2.100.0060.00618.05
8.2.90.0050.00319.30
8.2.80.0040.00817.97
8.2.70.0000.00817.88
8.2.60.0030.00718.18
8.2.50.0040.00418.10
8.2.40.0100.00020.48
8.2.30.0000.00720.70
8.2.20.0000.00818.15
8.2.10.0000.00718.20
8.2.00.0040.00418.34
8.1.280.0070.00725.92
8.1.270.0040.00423.59
8.1.260.0040.00426.35
8.1.250.0030.00628.09
8.1.240.0030.00622.17
8.1.230.0090.00317.83
8.1.220.0040.00417.77
8.1.210.0040.00418.77
8.1.200.0060.00317.50
8.1.190.0030.00517.50
8.1.180.0000.00818.10
8.1.170.0090.00018.81
8.1.160.0040.00419.19
8.1.150.0030.00619.01
8.1.140.0080.00019.66
8.1.130.0050.00317.79
8.1.120.0000.00817.77
8.1.110.0030.00617.77
8.1.100.0000.00817.66
8.1.90.0050.00317.64
8.1.80.0050.00317.65
8.1.70.0000.00817.69
8.1.60.0030.00517.84
8.1.50.0090.00017.74
8.1.40.0000.00817.63
8.1.30.0060.00317.81
8.1.20.0030.00517.86
8.1.10.0000.00817.79
8.1.00.0040.00417.84
8.0.300.0000.00818.77
8.0.290.0080.00017.00
8.0.280.0040.00418.52
8.0.270.0000.00717.42
8.0.260.0070.00017.42
8.0.250.0020.00517.32
8.0.240.0030.00617.38
8.0.230.0050.00517.25
8.0.220.0000.00717.11
8.0.210.0000.00717.25
8.0.200.0000.00717.34
8.0.190.0040.00417.29
8.0.180.0030.00517.29
8.0.170.0000.00817.29
8.0.160.0000.00817.21
8.0.150.0000.00817.13
8.0.140.0060.00617.12
8.0.130.0040.00413.53
8.0.120.0000.00917.20
8.0.110.0040.00417.23
8.0.100.0040.00417.15
8.0.90.0000.00817.11
8.0.80.0160.00317.27
8.0.70.0030.00617.18
8.0.60.0000.00717.13
8.0.50.0030.00517.13
8.0.30.0120.00917.36
8.0.20.0110.00917.43
8.0.10.0030.00517.26
8.0.00.0170.00616.86
7.4.330.0000.00515.13
7.4.320.0000.00716.76
7.4.300.0050.00316.83
7.4.290.0050.00216.83
7.4.280.0000.00816.72
7.4.270.0000.00816.75
7.4.260.0050.00516.80
7.4.250.0040.00416.74
7.4.240.0000.00816.84
7.4.230.0000.00716.86
7.4.220.0080.01216.71
7.4.210.0090.00616.85
7.4.200.0000.00716.85
7.4.160.0030.01316.76
7.4.150.0060.01217.40
7.4.140.0110.00817.86
7.4.130.0100.00816.92
7.4.120.0030.01616.92
7.4.110.0090.01316.72
7.4.100.0120.00616.88
7.4.90.0080.00816.71
7.4.80.0090.00919.39
7.4.70.0080.01616.71
7.4.60.0040.01416.80
7.4.50.0030.01316.94
7.4.40.0060.01216.78
7.4.30.0140.01116.84
7.4.00.0100.00715.33
7.3.330.0040.00413.52
7.3.320.0030.00313.39
7.3.310.0000.00716.53
7.3.300.0000.00716.41
7.3.290.0100.00716.56
7.3.280.0060.01216.58
7.3.270.0130.01017.40
7.3.260.0110.00916.74
7.3.250.0140.00916.70
7.3.240.0100.00716.66
7.3.230.0060.01216.64
7.3.210.0130.01016.98
7.3.200.0170.00716.65
7.3.190.0110.00616.85
7.3.180.0070.01016.68
7.3.170.0070.01116.72
7.3.160.0130.00316.67
7.2.330.0070.01316.89
7.2.320.0030.01717.05
7.2.310.0120.00617.14
7.2.300.0040.01517.07
7.2.290.0030.02317.14
7.2.60.0070.00717.12
7.2.00.0060.01119.76
7.1.200.0040.00416.11
7.1.100.0070.00718.58
7.1.70.0000.00817.29
7.1.60.0090.01519.32
7.1.50.0030.01717.30
7.1.00.0000.08022.54
7.0.200.0430.00714.81
7.0.60.0830.00020.06
7.0.50.1200.00020.43
7.0.40.0930.00020.27
7.0.30.0900.00020.39
7.0.20.1030.00020.41
7.0.10.0900.00020.45
7.0.00.0870.00020.40
5.6.210.0870.00020.53
5.6.200.0970.00021.10
5.6.190.0930.00021.09
5.6.180.0770.00021.17
5.6.170.0900.00021.21
5.6.160.0830.00021.09
5.6.150.0870.00021.06
5.6.140.0870.00021.06
5.6.130.0770.00021.18
5.6.120.1130.00021.13
5.6.110.0770.00021.21
5.6.100.1000.00021.07
5.6.90.0970.00021.18
5.6.80.0930.00020.46
5.6.70.0830.00020.43
5.6.60.1000.00020.31
5.6.50.0800.00020.35
5.6.40.0870.00020.40
5.6.30.0730.00020.52
5.6.20.0970.00020.42
5.6.10.0900.00020.56
5.6.00.0870.00020.47
5.5.350.0800.00020.46
5.5.340.0930.00020.63
5.5.330.0800.00020.90
5.5.320.0700.00020.80
5.5.310.0830.00020.80
5.5.300.0830.00021.01
5.5.290.0700.00020.86
5.5.280.0900.00020.88
5.5.270.0970.00020.87
5.5.260.0800.00020.87
5.5.250.0930.00020.69
5.5.240.0730.00020.22
5.5.230.0800.00020.25
5.5.220.1070.00020.21
5.5.210.0830.00020.38
5.5.200.0900.00020.22
5.5.190.0930.00020.21
5.5.180.0770.00020.40
5.5.160.0800.00020.15
5.5.150.1030.00020.18
5.5.140.0830.00020.16
5.5.130.0770.00020.21
5.5.120.0670.00020.19
5.5.110.0870.00020.22
5.5.100.0870.00020.16
5.5.90.0870.00020.11
5.5.80.0770.00020.07
5.5.70.0800.00020.00
5.5.60.0670.00019.95
5.5.50.0700.00020.18
5.5.40.0700.00020.10
5.5.30.0900.00020.14
5.5.20.0830.00020.26
5.5.10.0830.00020.05
5.5.00.0700.00020.14

preferences:
38.36 ms | 401 KiB | 5 Q