3v4l.org

run code in 300+ PHP versions simultaneously
<?php $base = new DateTime("2015-03-04 00:00:00 Europe/Berlin"); $date = new DateTime("2015-03-06 04:23:56 UTC"); $interval = new DateInterval('P1D'); var_dump(ceilDateTimeByInterval($base, $date, $interval)); function ceilDateTimeByInterval($baseDate, $date, $interval) { $ret = $date; $diff = $date->diff($baseDate); if ($interval->y) { $y = ceil($diff->y / $interval->y) * $interval->y; } if ($interval->m) { $m = ceil($diff->m / $interval->m) * $interval->m; } if ($interval->d) { $d = ceil($diff->d / $interval->d) * $interval->d; } if (isset($y) || isset($m) || isset($d)) { $y = isset($y) ? $y : (int)$date->format('Y'); $m = isset($m) ? $m : (int)$date->format('m'); $d = isset($d) ? $d : (int)$date->format('d'); $ret = ($ret === $date) ? clone $ret : $ret; $ret->setDate($y, $m, $d); } if ($interval->h) { $h = ceil($diff->h / $interval->h) * $interval->h; } if ($interval->i) { $i = ceil($diff->i / $interval->i) * $interval->i; } if ($interval->s) { $s = ceil($diff->s / $interval->s) * $interval->s; } if (isset($h) || isset($i) || isset($s)) { $h = isset($h) ? $h : (int)$date->format('G'); $i = isset($i) ? $i : (int)$date->format('i'); $s = isset($s) ? $s : (int)$date->format('s'); $ret = ($ret === $date) ? clone $ret : $ret; $ret->setTime($h, $i, $s); } return $ret; }

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.0110.00718.55
8.3.50.0110.00718.05
8.3.40.0090.00918.96
8.3.30.0140.00019.17
8.3.20.0030.00620.39
8.3.10.0040.00421.47
8.3.00.0050.00319.15
8.2.180.0070.00718.41
8.2.170.0140.00322.96
8.2.160.0070.00722.12
8.2.150.0040.00424.18
8.2.140.0060.00324.66
8.2.130.0040.00426.16
8.2.120.0080.00019.79
8.2.110.0060.00322.30
8.2.100.0120.00017.97
8.2.90.0090.00019.22
8.2.80.0030.00517.97
8.2.70.0040.00417.75
8.2.60.0000.00817.92
8.2.50.0000.00918.07
8.2.40.0040.00419.94
8.2.30.0050.00518.19
8.2.20.0040.00417.91
8.2.10.0080.00018.30
8.2.00.0050.00217.91
8.1.280.0110.01125.92
8.1.270.0060.00319.00
8.1.260.0040.00426.35
8.1.250.0040.00428.09
8.1.240.0030.00623.82
8.1.230.0060.00618.90
8.1.220.0040.00417.74
8.1.210.0080.00018.77
8.1.200.0050.00717.47
8.1.190.0000.00917.35
8.1.180.0030.00618.10
8.1.170.0000.01018.79
8.1.160.0050.00321.96
8.1.150.0020.00518.93
8.1.140.0030.00517.61
8.1.130.0040.00417.93
8.1.120.0000.00717.77
8.1.110.0040.00417.74
8.1.100.0000.00717.59
8.1.90.0000.00817.73
8.1.80.0000.00817.58
8.1.70.0040.00417.73
8.1.60.0040.00417.62
8.1.50.0060.00317.66
8.1.40.0030.00517.64
8.1.30.0030.00617.69
8.1.20.0030.00617.77
8.1.10.0000.00817.73
8.1.00.0000.00817.76
8.0.300.0000.00718.77
8.0.290.0040.00417.00
8.0.280.0000.00718.61
8.0.270.0030.00317.30
8.0.260.0060.00317.37
8.0.250.0000.00717.27
8.0.240.0000.00717.21
8.0.230.0040.00317.10
8.0.220.0070.00017.16
8.0.210.0030.00617.14
8.0.200.0060.00017.11
8.0.190.0000.00717.23
8.0.180.0040.00417.18
8.0.170.0040.00417.14
8.0.160.0000.00817.11
8.0.150.0070.00017.05
8.0.140.0080.00017.04
8.0.130.0000.00613.63
8.0.120.0000.00817.07
8.0.110.0040.00417.16
8.0.100.0050.00317.18
8.0.90.0050.00217.11
8.0.80.0040.01117.09
8.0.70.0030.00517.07
8.0.60.0000.00816.97
8.0.50.0000.00717.20
8.0.30.0090.01417.28
8.0.20.0110.00917.40
8.0.10.0040.00417.25
8.0.00.0110.00617.01
7.4.330.0030.00315.20
7.4.320.0020.00516.61
7.4.300.0030.00316.79
7.4.290.0030.00316.70
7.4.280.0000.00816.61
7.4.270.0060.00316.59
7.4.260.0080.00316.76
7.4.250.0070.00016.54
7.4.240.0040.00316.64
7.4.230.0000.00716.88
7.4.220.0030.01716.56
7.4.210.0040.01216.76
7.4.200.0050.00216.86
7.4.160.0030.01316.69
7.4.150.0120.00617.40
7.4.140.0120.00717.86
7.4.130.0020.01516.72
7.4.120.0080.00916.72
7.4.110.0140.00316.89
7.4.100.0180.00316.75
7.4.90.0110.00716.60
7.4.80.0160.00719.39
7.4.70.0110.00516.61
7.4.60.0090.00616.65
7.4.50.0030.00616.79
7.4.40.0130.00916.61
7.4.30.0090.00916.63
7.4.00.0090.00615.38
7.3.330.0030.00313.60
7.3.320.0050.00013.67
7.3.310.0000.00716.63
7.3.300.0030.00316.64
7.3.290.0080.00816.61
7.3.280.0080.01016.61
7.3.270.0150.00417.40
7.3.260.0060.01216.95
7.3.250.0100.00816.79
7.3.240.0130.00316.63
7.3.230.0130.01016.68
7.3.210.0110.00816.78
7.3.200.0090.01019.39
7.3.190.0090.00916.84
7.3.180.0000.01616.73
7.3.170.0100.00916.79
7.3.160.0070.01016.59
7.2.330.0150.00316.94
7.2.320.0170.00016.84
7.2.310.0040.01617.00
7.2.300.0100.00716.90
7.2.290.0100.01116.77
7.2.00.0060.01019.72
7.1.100.0100.00618.47
7.1.70.0000.00817.37
7.1.60.0030.01019.46
7.1.50.0130.00916.97
7.1.00.0070.07022.33
7.0.200.0040.00417.13
7.0.140.0070.04021.97
7.0.60.0070.08020.00
7.0.50.0070.08717.91
7.0.40.0070.07320.13
7.0.30.0230.05720.23
7.0.20.0230.04720.23
7.0.10.0000.04720.08
7.0.00.0070.07320.23
5.6.280.0030.07721.05
5.6.210.0100.07020.48
5.6.200.0070.04018.24
5.6.190.0030.04320.50
5.6.180.0300.07020.55
5.6.170.0370.06020.46
5.6.160.0070.04020.54
5.6.150.0070.04718.29
5.6.140.0070.03718.18
5.6.130.0000.06318.24
5.6.120.0030.04320.98
5.6.110.0030.09021.10
5.6.100.0000.08321.02
5.6.90.0070.08320.99
5.6.80.0030.04020.44
5.5.350.0030.06720.39
5.5.340.0100.08018.01
5.5.330.0130.06320.32
5.5.320.0370.07720.35
5.5.310.0270.04020.38
5.5.300.0030.04017.98
5.5.290.0100.04717.94
5.5.280.0100.08020.79
5.5.270.0100.08020.78
5.5.260.0130.07320.88
5.5.250.0070.05320.80
5.5.240.2700.04320.05
5.4.450.0170.05319.15
5.4.440.0470.06019.58
5.4.430.0070.07719.45
5.4.420.0070.05719.41
5.4.410.0130.05019.28
5.4.400.0230.04019.38
5.4.390.0670.06018.79
5.4.380.0670.06018.46
5.4.370.0870.07318.56
5.4.360.1000.06018.58
5.4.350.0700.07318.79
5.4.340.0830.08718.79
5.4.320.0870.06318.47
5.4.310.0730.07018.79
5.4.300.1070.05718.57
5.4.290.1070.05318.79
5.4.280.0800.06018.73
5.4.270.0830.04318.80
5.4.260.0800.05018.44
5.4.250.0770.05018.48
5.4.240.0970.05318.80
5.4.230.0870.05718.55
5.4.220.0830.07318.78
5.4.210.0870.07018.70
5.4.200.0830.06316.61
5.4.190.0730.05718.82
5.4.180.0930.05018.60
5.4.170.0830.06018.69
5.4.160.0730.06318.73
5.4.150.0930.05718.69
5.4.140.0730.07016.24
5.4.130.0900.04316.18
5.4.120.0900.05016.28
5.4.110.0670.06016.18
5.4.100.0800.05316.23
5.4.90.0630.06316.37
5.4.80.0830.06016.29
5.4.70.0670.07316.23
5.4.60.0970.07016.45
5.4.50.0930.05716.27
5.4.40.0800.05716.26
5.4.30.0930.05716.17
5.4.20.0630.05716.22
5.4.10.0730.06316.25
5.4.00.0730.05015.71
5.3.290.0930.05714.73
5.3.280.0800.05314.81
5.3.270.0770.06014.82
5.3.260.0800.06014.76
5.3.250.0770.04714.65
5.3.240.0800.05314.69
5.3.230.0630.06014.69
5.3.220.0770.05714.70
5.3.210.0700.06014.66
5.3.200.1000.04714.64
5.3.190.0830.05714.82
5.3.180.0700.05714.70
5.3.170.0800.06014.77
5.3.160.0630.07014.64
5.3.150.0970.06014.72
5.3.140.0870.08014.61
5.3.130.1030.07714.80
5.3.120.1170.07014.69
5.3.110.1000.07014.72
5.3.100.0830.07714.17
5.3.90.0700.07314.18
5.3.80.0730.05314.25
5.3.70.0670.05714.14
5.3.60.0800.05314.25
5.3.50.0670.05713.97
5.3.40.0700.06314.02
5.3.30.0830.04713.98
5.3.20.0770.05713.85
5.3.10.0970.04713.89
5.3.00.0630.05313.79
5.2.170.0570.04711.27
5.2.160.0630.03711.27
5.2.150.0670.04711.27
5.2.140.0600.06011.21
5.2.130.0730.06011.11
5.2.120.0800.04311.15
5.2.110.0770.04711.17
5.2.100.0700.04711.23
5.2.90.0670.04311.18
5.2.80.0700.05711.14
5.2.70.0330.06011.24
5.2.60.0170.04311.13
5.2.50.0130.05011.12
5.2.40.0100.05711.15
5.2.30.0130.05711.23
5.2.20.0100.05711.20
5.2.10.0170.05011.01
5.2.00.0030.05010.88
5.1.60.0170.03710.01
5.1.50.0070.04010.14
5.1.40.0100.03710.07
5.1.30.0230.04010.49
5.1.20.0170.04010.36
5.1.10.0200.02710.14
5.1.00.0070.05010.17
5.0.50.0030.0438.50
5.0.40.0230.0208.48
5.0.30.0030.0478.44
5.0.20.0130.0238.36
5.0.10.0070.0408.34
5.0.00.0130.0408.38
4.4.90.0000.0305.97
4.4.80.0070.0205.99
4.4.70.0030.0235.92
4.4.60.0070.0236.03
4.4.50.0070.0235.95
4.4.40.0070.0375.93
4.4.30.0030.0276.00
4.4.20.0030.0276.07
4.4.10.0070.0206.05
4.4.00.0030.0375.98
4.3.110.0000.0305.87
4.3.100.0130.0205.83
4.3.90.0100.0275.84
4.3.80.0100.0405.80
4.3.70.0130.0235.86
4.3.60.0100.0275.80
4.3.50.0100.0305.82
4.3.40.0000.0405.80
4.3.30.0030.0234.81
4.3.20.0000.0334.81
4.3.10.0030.0274.81
4.3.00.0100.02012.55

preferences:
58.31 ms | 400 KiB | 5 Q