3v4l.org

run code in 300+ PHP versions simultaneously
<?php /** * Class PeriodIterator * * @author Efimov Evgeniy <evgeniy.efimov@alpari.org> */ class PeriodIterator implements \Iterator { /** * Start date * * @var \DateTime */ private $startDate; /** * End date * * @var \DateTime */ private $endDate; /** * Iteration offset * * @var string */ private $offset; /** * Current iteration date * * @var \DateTime */ private $currentDate; /** * PeriodIterator constructor. * * @param \DateTime $startDate Start date * @param \DateTime $endDate End date * @param string $offset Offset for iteration */ public function __construct(\DateTime $startDate, \DateTime $endDate, $offset) { $this->startDate = $startDate; $this->endDate = $endDate; $this->offset = $offset; } /** {@inheritdoc} */ public function current() { return $this->currentDate; } /** {@inheritdoc} */ public function next() { $this->currentDate->modify($this->offset); } /** {@inheritdoc} */ public function key() { return $this->currentDate->getTimestamp(); } /** {@inheritdoc} */ public function valid() { return $this->currentDate->getTimestamp() <= $this->endDate->getTimestamp(); } /** {@inheritdoc} */ public function rewind() { $this->currentDate = clone $this->startDate; } } $workLoad = new PeriodIterator(new \DateTime('sunday last week'), new DateTime('last day of this month'), "1 day" ); $secondPeriod = $workLoad->current(); echo $secondPeriod->format('Y-m-d H:i:s');

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.40.0110.00419.07
8.3.30.0110.00319.05
8.3.20.0000.00820.25
8.3.10.0000.00820.80
8.3.00.0090.00020.52
8.2.170.0090.00922.96
8.2.160.0130.00722.25
8.2.150.0040.00424.18
8.2.140.0080.00024.66
8.2.130.0040.00419.27
8.2.120.0070.00726.35
8.2.110.0090.00022.25
8.2.100.0120.00018.05
8.2.90.0000.00819.36
8.2.80.0090.00018.00
8.2.70.0060.00317.75
8.2.60.0030.00517.93
8.2.50.0030.00718.09
8.2.40.0040.00420.68
8.2.30.0030.00619.68
8.2.20.0020.00517.87
8.2.10.0040.00418.26
8.2.00.0000.00718.32
8.1.270.0030.01622.20
8.1.260.0040.00728.09
8.1.250.0040.00428.09
8.1.240.0000.01220.95
8.1.230.0090.00317.89
8.1.220.0040.00417.74
8.1.210.0000.00818.77
8.1.200.0030.00617.63
8.1.190.0040.00417.63
8.1.180.0080.00018.10
8.1.170.0080.00018.75
8.1.160.0080.00020.95
8.1.150.0040.00419.07
8.1.140.0040.00419.76
8.1.130.0030.00517.86
8.1.120.0040.00317.70
8.1.110.0000.00717.77
8.1.100.0040.00417.79
8.1.90.0030.00517.62
8.1.80.0030.00517.67
8.1.70.0000.00717.74
8.1.60.0000.00817.72
8.1.50.0080.00017.73
8.1.40.0040.00417.82
8.1.30.0000.00817.93
8.1.20.0030.00617.77
8.1.10.0050.00217.77
8.1.00.0000.00817.63
8.0.300.0030.00518.77
8.0.290.0050.00316.88
8.0.280.0040.00418.50
8.0.270.0030.00517.45
8.0.260.0060.00017.44
8.0.250.0040.00417.36
8.0.240.0000.00717.22
8.0.230.0050.00217.23
8.0.220.0040.00417.31
8.0.210.0040.00417.27
8.0.200.0000.00717.19
8.0.190.0070.00017.32
8.0.180.0000.00717.21
8.0.170.0040.00417.19
8.0.160.0050.00317.18
8.0.150.0070.00017.16
8.0.140.0030.00517.22
8.0.130.0000.00713.59
8.0.120.0030.00517.27
8.0.110.0000.00717.23
8.0.100.0000.00717.13
8.0.90.0000.00717.31
8.0.80.0110.00717.31
8.0.70.0030.00517.11
8.0.60.0000.00717.33
8.0.50.0000.00717.18
8.0.30.0110.00617.22
8.0.20.0100.00817.41
8.0.10.0000.00817.45
8.0.00.0150.00617.03
7.4.330.0000.00516.90
7.4.320.0060.00016.89
7.4.300.0000.00716.75
7.4.290.0000.00716.84
7.4.280.0030.00316.84
7.4.270.0070.00416.61
7.4.260.0060.00316.82
7.4.250.0080.00016.82
7.4.240.0040.00416.68
7.4.230.0080.00016.55
7.4.220.0120.00616.89
7.4.210.0110.00816.77
7.4.200.0040.00416.78
7.4.160.0080.00816.68
7.4.150.0130.00417.40
7.4.140.0160.00517.86
7.4.130.0120.01016.94
7.4.120.0100.01116.82
7.4.110.0120.00817.00
7.4.100.0120.01216.68
7.4.90.0130.00416.74
7.4.80.0120.01419.39
7.4.70.0060.01317.02
7.4.60.0060.01016.75
7.4.50.0060.00616.93
7.4.40.0080.01016.79
7.4.30.0120.00816.66
7.4.00.0060.00915.09
7.3.330.0000.00513.58
7.3.320.0020.00213.64
7.3.310.0040.00416.54
7.3.300.0030.00316.35
7.3.290.0070.00016.59
7.3.280.0090.00616.56
7.3.270.0060.01217.40
7.3.260.0180.00016.76
7.3.250.0120.00916.71
7.3.240.0120.00516.68
7.3.230.0110.01216.69
7.3.210.0100.00716.79
7.3.200.0060.01216.77
7.3.190.0160.00616.83
7.3.180.0120.00616.71
7.3.170.0080.00816.66
7.3.160.0090.00616.74
7.3.10.0120.00316.91
7.3.00.0040.00416.89
7.2.330.0110.01116.98
7.2.320.0030.01316.91
7.2.310.0100.00717.00
7.2.300.0130.01016.85
7.2.290.0100.01316.79
7.2.130.0060.00617.14
7.2.120.0000.01517.28
7.2.110.0030.01016.94
7.2.100.0140.00317.39
7.2.90.0000.01317.23
7.2.80.0070.00316.76
7.2.70.0030.01017.07
7.2.60.0120.00217.17
7.2.50.0060.00616.86
7.2.40.0060.00816.82
7.2.30.0070.00716.97
7.2.20.0030.00916.88
7.2.10.0000.01416.91
7.2.00.0050.00818.45
7.1.250.0040.00816.04
7.1.200.0100.00015.89
7.1.100.0040.00818.07
7.1.70.0000.00717.00
7.1.60.0030.01019.27
7.1.50.0100.01016.97
7.1.00.0070.07322.44
7.0.200.1530.00714.80
7.0.60.0130.06721.86
7.0.50.0100.06017.86
7.0.40.0100.04020.02
7.0.30.0370.07320.09
7.0.20.0230.07320.34
7.0.10.0030.09320.30
7.0.00.0100.06020.08
5.6.280.0000.07321.05
5.6.210.0070.07020.57
5.6.200.0070.07018.29
5.6.190.0130.08320.52
5.6.180.0300.07020.46
5.6.170.0230.08720.56
5.6.160.0200.06720.46
5.6.150.0070.05018.14
5.6.140.0070.04018.28
5.6.130.0030.05318.15
5.6.120.0030.08721.02
5.6.110.0170.07721.02
5.6.100.0200.07021.05
5.6.90.0170.06320.88
5.6.80.0030.07720.52
5.5.350.0230.03020.42
5.5.340.0130.03018.03
5.5.330.0000.08720.30
5.5.320.0330.07720.27
5.5.310.0300.06020.26
5.5.300.0000.06717.99
5.5.290.0030.04317.95
5.5.280.0070.05020.88
5.5.270.0130.06320.95
5.5.260.0030.08020.69
5.5.250.0070.07320.60
5.5.240.0030.08020.38

preferences:
55.18 ms | 400 KiB | 5 Q