3v4l.org

run code in 500+ PHP versions simultaneously
#!/usr/bin/env php <?php /** * Une date au format "YYYY-MM-DD HH:II:SS" n'est pas absolue et peut correspondre à plusieurs timestamps. * Lors du passage à l'heure d'hiver on a cette correspondance : * * ts 1540684800 = 2018-10-28T02:00:00+02:00 * ts 1540688400 = 2018-10-28T02:00:00+01:00 * ts 1540692000 = 2018-10-28T03:00:00+01:00 * * php via sa fonction mktime() permet de générer un timestamp (en interprétant les données dans la timezone définie dans le script). * * J'ai remarqué qu'en fournissant "2018-10-28 02:00:00" (avec un TZ Europe/Paris) le timestamp retourné est celui de la 2ème tranche de 02h (1540688400) * Oui mais ce comportement a changé au cours des versions de php !!! * Depuis la 8.1.7 le timestamp retourné correspond maintenant à la 1ère tranche de 02h (1540684800) * * Test sur plusieurs versions : * https://3v4l.org/8rC1Y * * Alors oui ça part d'un bon sentiment d'éradiquer des bugs : * - https://www.php.net/ChangeLog-8.php#8.1.7 * - https://bugs.php.net/bug.php?id=68549 */ date_default_timezone_set('Europe/Paris'); $tz = date_default_timezone_get(); $datetime = '2018-10-28 02:00:00'; // ambigü car passage à l'heure d'hiver $year = (int) substr($datetime, 0, 4); $month = (int) substr($datetime, 5, 2); $day = (int) substr($datetime, 8, 2); $hour = (int) substr($datetime, 11, 2); $minute = (int) substr($datetime, 14, 2); $second = (int) substr($datetime, 17, 2); $ts = mktime($hour, $minute, $second, $month, $day, $year); $offset = intval(date('Z', $ts) / 3600); // pour Europe/Paris: +1 ou +2 echo $tz . ' ' . $datetime . ' : timestamp=' . $ts . ' offset=' . $offset . "\n";

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.5.30.0270.00716.54
8.5.20.0340.00616.65
8.5.10.0340.00716.73
8.5.00.0120.00716.68
8.4.180.0280.01219.58
8.4.170.0280.00919.70
8.4.160.0340.00819.57
8.4.150.0340.00819.55
8.4.140.0360.00717.64
8.4.130.0330.01017.67
8.4.120.0360.00817.94
8.4.110.0350.01117.98
8.4.100.0360.00717.98
8.4.90.0380.00817.97
8.4.80.0380.00617.95
8.4.70.0380.00817.79
8.4.60.0380.00817.93
8.4.50.0380.00717.85
8.4.40.0330.00817.80
8.4.30.0260.00517.70
8.4.20.0300.00517.68
8.4.10.0300.01017.66
8.3.300.0330.00818.43
8.3.290.0310.00818.38
8.3.280.0320.01018.52
8.3.270.0360.00716.66
8.3.260.0370.00616.57
8.3.250.0360.00616.70
8.3.240.0260.00816.63
8.3.230.0300.00516.64
8.3.220.0260.00616.61
8.3.210.0220.00516.80
8.3.200.0240.00416.68
8.3.190.0370.00816.66
8.3.180.0370.00816.58
8.3.170.0240.00816.77
8.3.160.0290.00716.71
8.3.150.0280.00616.66
8.3.140.0300.00616.54
8.3.130.0310.00716.70
8.3.120.0320.00516.58
8.3.110.0170.00416.60
8.3.100.0160.00516.72
8.3.90.0270.00716.83
8.3.80.0340.00916.75
8.3.70.0270.00816.58
8.3.60.0320.00516.65
8.3.50.0280.00616.75
8.3.40.0240.00418.10
8.3.30.0220.00518.03
8.3.20.0230.00717.85
8.3.10.0220.00518.10
8.3.00.0210.00717.89
8.2.300.0210.00317.99
8.2.290.0290.00616.60
8.2.280.0280.00616.57
8.2.270.0340.00916.63
8.2.260.0310.01016.49
8.2.250.0260.00516.80
8.2.240.0190.00716.54
8.2.230.0290.00816.49
8.2.220.0300.00916.73
8.2.210.0310.00716.49
8.2.200.0290.00916.49
8.2.190.0310.00916.73
8.2.180.0320.00716.60
8.2.170.0280.01218.13
8.2.160.0270.01018.15
8.2.150.0260.01217.87
8.2.140.0320.00517.73
8.2.130.0260.01117.84
8.2.120.0280.00817.96
8.2.110.0250.00417.96
8.2.100.0290.00717.96
8.2.90.0290.00717.95
8.2.80.0310.00717.84
8.2.70.0230.01017.87
8.2.60.0240.00817.81
8.2.50.0130.00417.96
8.2.40.0270.00717.97
8.2.30.0290.00717.84
8.2.20.0280.00817.84
8.2.10.0220.00817.97
8.2.00.0230.01217.80
8.1.340.0310.00917.77
8.1.330.0290.00916.49
8.1.320.0260.01016.49
8.1.310.0310.00916.49
8.1.300.0120.00616.49
8.1.290.0120.00516.49
8.1.280.0110.00516.49
8.1.270.0100.00517.83
8.1.260.0150.00117.75
8.1.250.0130.00317.77
8.1.240.0210.00717.70
8.1.230.0220.00817.85
8.1.220.0220.00517.79
8.1.210.0270.00917.78
8.1.200.0240.01017.80
8.1.190.0290.00817.61
8.1.180.0290.00817.54
8.1.170.0300.00517.85
8.1.160.0330.00217.86
8.1.150.0270.00917.85
8.1.140.0290.00717.71
8.1.130.0240.01117.86
8.1.120.0280.00317.92
8.1.110.0180.00317.88
8.1.100.0150.00117.81
8.1.90.0190.00617.75
8.1.80.0290.00717.81
8.1.70.0270.00817.71
8.1.60.0260.01017.88
8.1.50.0300.00517.88
8.1.40.0260.00617.86
8.1.30.0400.01217.74
8.1.20.0300.00617.63
8.1.10.0220.00717.82
8.1.00.0230.00617.71
8.0.300.0280.00617.12
8.0.290.0240.00917.12
8.0.280.0280.00516.95
8.0.270.0240.01017.09
8.0.260.0290.00516.93
8.0.250.0230.01017.17
8.0.240.0220.00817.28
8.0.230.0180.00817.23
8.0.220.0260.00617.11
8.0.210.0320.00716.87
8.0.200.0280.00417.41
8.0.190.0250.00317.18
8.0.180.0240.00217.28
8.0.170.0200.00717.16
8.0.160.0240.00917.14
8.0.150.0270.00717.01
8.0.140.0210.00817.02
8.0.130.0300.00417.21
8.0.120.0300.00417.08
8.0.110.0280.00716.87
8.0.100.0290.00516.99
8.0.90.0230.00717.10
8.0.80.0270.00617.04
8.0.70.0260.00617.13
8.0.60.0250.01017.20
8.0.50.0230.01016.96
8.0.30.0250.00817.29
8.0.20.0250.00817.07
8.0.10.0260.00917.07
8.0.00.0300.00817.13
7.4.330.0260.00916.89
7.4.320.0300.00816.70
7.4.300.0210.00816.65
7.4.290.0210.00516.90
7.4.280.0220.00516.89
7.4.270.0260.00816.82
7.4.260.0260.00816.62
7.4.250.0250.00716.81
7.4.240.0280.00516.84
7.4.230.0240.00816.84
7.4.220.0250.00816.87
7.4.210.0220.00416.82
7.4.200.0100.00516.76
7.4.190.0110.00616.61
7.4.180.0100.00516.70
7.4.160.0250.00316.82
7.4.150.0130.00216.78
7.4.140.0120.00216.67
7.4.130.0150.00016.49
7.4.120.0350.00816.49
7.4.110.0230.00916.65
7.4.100.0110.00616.62
7.4.90.0120.00216.67
7.4.80.0130.00316.73
7.4.70.0160.00716.49
7.4.60.0220.01016.54
7.4.50.0300.00416.73
7.4.40.0250.00816.57
7.4.30.0250.00716.49
7.4.20.0270.00516.67
7.4.10.0260.00616.71
7.4.00.0210.00716.68
7.3.330.0230.00516.49
7.3.320.0170.00816.53
7.3.310.0230.00816.51
7.3.300.0270.00516.49
7.3.290.0280.00416.53
7.3.280.0250.00916.49
7.3.270.0310.00516.49
7.3.260.0210.00416.56
7.3.250.0220.00916.49
7.3.240.0230.00716.49
7.3.230.0280.01016.49
7.3.220.0250.00916.49
7.3.210.0260.00716.49
7.3.200.0250.00616.49
7.3.190.0250.00516.49
7.3.180.0250.00416.51
7.3.170.0260.00516.68
7.3.160.0220.00916.50
7.3.150.0190.00616.49
7.3.140.0200.01116.68
7.3.130.0220.00616.61
7.3.120.0180.00616.49
7.3.110.0180.00616.49
7.3.100.0260.00616.54
7.3.90.0240.00616.89
7.3.80.0240.00416.49
7.3.70.0250.00516.54
7.3.60.0250.00616.49
7.3.50.0240.00616.61
7.3.40.0210.01016.68
7.3.30.0280.00516.56
7.3.20.0260.01018.47
7.3.10.0250.00718.45
7.3.00.0240.00818.42
7.2.340.0230.00716.56
7.2.330.0270.00916.49
7.2.320.0210.00916.52
7.2.310.0210.00416.75
7.2.300.0250.00516.49
7.2.290.0230.00816.84
7.2.280.0240.00816.70
7.2.270.0250.00616.49
7.2.260.0210.01116.61
7.2.250.0250.00616.68
7.2.240.0240.00816.68
7.2.230.0350.00616.58
7.2.220.0210.01016.54
7.2.210.0240.00716.53
7.2.200.0240.01016.77
7.2.190.0260.00616.64
7.2.180.0240.00816.75
7.2.170.0250.01216.77
7.2.160.0240.00716.81
7.2.150.0300.01018.46
7.2.140.0140.00418.66
7.2.130.0230.00518.68
7.2.120.0280.00718.68
7.2.110.0230.00918.57
7.2.100.0260.00618.53
7.2.90.0260.00618.52
7.2.80.0250.00818.70
7.2.70.0240.01018.72
7.2.60.0310.00718.62
7.2.50.0280.00618.66
7.2.40.0270.00818.71
7.2.30.0290.00618.77
7.2.20.0300.00518.44
7.2.10.0230.00818.57
7.2.00.0280.00618.75
7.1.330.0250.00617.55
7.1.320.0180.01017.23
7.1.310.0190.00617.54
7.1.300.0120.00417.52
7.1.290.0230.00417.67
7.1.280.0210.00916.49
7.1.270.0350.00516.49
7.1.260.0240.00817.46
7.1.250.0250.00717.32
7.1.240.0260.00617.48
7.1.230.0210.00917.61
7.1.220.0240.00717.56
7.1.210.0290.00417.70
7.1.200.0220.00817.52
7.1.190.0370.00217.54
7.1.180.0210.00917.46
7.1.170.0270.00717.72
7.1.160.0230.00617.64
7.1.150.0240.00617.43
7.1.140.0230.00717.58
7.1.130.0230.00517.58
7.1.120.0230.00717.31
7.1.110.0260.00617.58
7.1.100.0280.00517.46
7.1.90.0280.00317.51
7.1.80.0200.00817.59
7.1.70.0200.00917.34
7.1.60.0220.00417.55
7.1.50.0190.00717.61
7.1.40.0220.00217.48
7.1.30.0220.00317.52
7.1.20.0170.00617.48
7.1.10.0190.00617.52
7.1.00.0230.00817.42
7.0.330.0270.00517.30
7.0.320.0180.00517.30
7.0.310.0190.00517.16
7.0.300.0200.00417.30
7.0.290.0140.00716.96
7.0.280.0270.00517.29
7.0.270.0230.00817.22
7.0.260.0220.00717.20
7.0.250.0220.00717.61
7.0.240.0200.00817.43
7.0.230.0280.00817.77
7.0.220.0180.00517.45
7.0.210.0170.00617.33
7.0.200.0180.01217.45
7.0.190.0260.00517.63
7.0.180.0200.00517.50
7.0.170.0230.00317.33
7.0.160.0280.00417.36
7.0.150.0250.00417.01
7.0.140.0250.00617.26
7.0.130.0270.00417.43
7.0.120.0260.01117.23
7.0.110.0210.00417.22
7.0.100.0210.00617.36
7.0.90.0210.00816.97
7.0.80.0230.00816.92
7.0.70.0200.01017.01
7.0.60.0200.00817.26
7.0.50.0230.00317.21
7.0.40.0260.00617.15
7.0.30.0200.00817.30
7.0.20.0210.01017.21
7.0.10.0240.00517.48
7.0.00.0180.00817.27
5.6.400.0200.00616.49
5.6.390.0250.00516.49
5.6.380.0230.00716.49
5.6.370.0160.01016.49
5.6.360.0210.00416.49
5.6.350.0250.00516.49
5.6.340.0250.00716.49
5.6.330.0240.00516.49
5.6.320.0220.00716.49
5.6.310.0270.00516.49
5.6.300.0220.00716.49
5.6.290.0210.00616.49
5.6.280.0200.00716.49
5.6.270.0260.00416.49
5.6.260.0250.00616.49
5.6.250.0260.00416.49
5.6.240.0240.00516.49
5.6.230.0210.00816.49
5.6.220.0240.00516.49
5.6.210.0230.00716.49
5.6.200.0240.00916.49
5.6.190.0210.00916.49
5.6.180.0260.00516.49
5.6.170.0230.00516.49
5.6.160.0240.00816.49
5.6.150.0240.00616.49
5.6.140.0200.01016.49
5.6.130.0200.00916.49
5.6.120.0270.01016.49
5.6.110.0180.00916.49
5.6.100.0150.00416.49
5.6.90.0130.00216.49
5.6.80.0090.00416.49
5.6.70.0090.00816.49
5.6.60.0150.00416.49
5.6.50.0070.00616.49
5.6.40.0090.00316.49
5.6.30.0230.00716.49
5.6.20.0210.00816.49
5.6.10.0190.01016.49
5.6.00.0200.00816.49
5.5.380.0260.00916.49
5.5.370.0210.01016.49
5.5.360.0230.00716.49
5.5.350.0230.00616.49
5.5.340.0230.00616.49
5.5.330.0240.00316.49
5.5.320.0230.00516.49
5.5.310.0210.00816.49
5.5.300.0250.00616.49
5.5.290.0210.00816.49
5.5.280.0200.00616.49
5.5.270.0200.00816.49
5.5.260.0220.00316.49
5.5.250.0190.00816.49
5.5.240.0160.00716.49
5.5.230.0190.00616.49
5.5.220.0170.00616.49
5.5.210.0230.00516.49
5.5.200.0260.00316.49
5.5.190.0200.01016.49
5.5.180.0260.00316.49
5.5.170.0090.00616.49
5.5.160.0210.00416.49
5.5.150.0200.00616.49
5.5.140.0220.00616.49
5.5.130.0220.00716.49
5.5.120.0250.00616.49
5.5.110.0210.00916.49
5.5.100.0190.00916.49
5.5.90.0200.00816.49
5.5.80.0230.00516.49
5.5.70.0330.00516.49
5.5.60.0230.01016.49
5.5.50.0250.00816.49
5.5.40.0230.00516.49
5.5.30.0200.00816.49
5.5.20.0220.00416.49
5.5.10.0210.00416.49
5.5.00.0220.00716.49
5.4.450.0160.00616.49
5.4.440.0190.00416.49
5.4.430.0170.00616.49
5.4.420.0210.00216.49
5.4.410.0170.00616.49
5.4.400.0190.00216.49
5.4.390.0160.00416.49
5.4.380.0060.00416.49
5.4.370.0100.00016.49
5.4.360.0090.00116.49
5.4.350.0090.00216.49
5.4.340.0100.00216.49
5.4.330.0070.00516.49
5.4.320.0110.00216.49
5.4.310.0060.00416.49
5.4.300.0070.00316.49
5.4.290.0070.00416.49
5.4.280.0080.00316.49
5.4.270.0160.00416.49
5.4.260.0180.00616.49
5.4.250.0190.00316.49
5.4.240.0180.00716.49
5.4.230.0180.00416.49
5.4.220.0150.00716.49
5.4.210.0180.00416.49
5.4.200.0210.00316.49
5.4.190.0140.00916.49
5.4.180.0170.00516.49
5.4.170.0180.00516.49
5.4.160.0170.00716.49
5.4.150.0220.00416.49
5.4.140.0160.00816.49
5.4.130.0180.00616.49
5.4.120.0170.00616.49
5.4.110.0200.00216.49
5.4.100.0200.00216.49
5.4.90.0180.00416.49
5.4.80.0210.00616.49
5.4.70.0160.00716.49
5.4.60.0170.00316.49
5.4.50.0090.00116.49
5.4.40.0110.00016.49
5.4.30.0090.00116.49
5.4.20.0080.00216.49
5.4.10.0080.00316.49
5.4.00.0160.00716.49
5.3.290.0180.00516.49
5.3.280.0180.00516.49
5.3.270.0190.00416.49
5.3.260.0150.00816.49
5.3.250.0170.00516.49
5.3.240.0190.00416.49
5.3.230.0160.00816.49
5.3.220.0160.00716.49
5.3.210.0160.00816.49
5.3.200.0150.00816.49
5.3.190.0170.00516.49
5.3.180.0150.00816.49
5.3.170.0190.00616.49
5.3.160.0130.00916.49
5.3.150.0150.00816.49
5.3.140.0190.00316.49
5.3.130.0200.00516.49
5.3.120.0160.00716.49
5.3.110.0200.00516.49
5.3.100.0200.00616.49
5.3.90.0170.00816.49
5.3.80.0150.00716.49
5.3.70.0100.00216.49
5.3.60.0150.00216.49
5.3.50.0100.00316.49
5.3.40.0090.00216.49
5.3.30.0080.00316.49
5.3.20.0110.00216.49
5.3.10.0060.00416.49
5.3.00.0090.00116.49
5.2.170.0100.00516.49
5.2.160.0150.00316.49
5.2.150.0150.00416.49
5.2.140.0130.00616.49
5.2.130.0140.00616.49
5.2.120.0140.00516.49
5.2.110.0160.00416.49
5.2.100.0170.00216.49
5.2.90.0150.00316.49
5.2.80.0110.00716.49
5.2.70.0130.00516.49
5.2.60.0120.00716.49
5.2.50.0110.00716.49
5.2.40.0140.00416.49
5.2.30.0170.00316.49
5.2.20.0110.00716.49
5.2.10.0150.00416.49
5.2.00.0120.00516.49
5.1.60.0100.00616.49
5.1.50.0120.00416.49
5.1.40.0130.00416.49
5.1.30.0110.00616.49
5.1.20.0130.00416.49
5.1.10.0130.00316.49
5.1.00.0120.00416.49
5.0.50.0080.00516.49
5.0.40.0110.00616.49
5.0.30.0120.00216.49
5.0.20.0100.00516.49
5.0.10.0100.00416.49
5.0.00.0110.00316.49
4.4.90.0080.00116.49
4.4.80.0050.00516.49
4.4.70.0070.00216.49
4.4.60.0080.00216.49
4.4.50.0080.00116.49
4.4.40.0070.00216.49
4.4.30.0070.00316.49
4.4.20.0080.00216.49
4.4.10.0070.00416.49
4.4.00.0080.00216.49
4.3.110.0060.00316.49
4.3.100.0060.00316.49
4.3.90.0060.00216.49
4.3.80.0060.00116.49
4.3.70.0050.00216.49
4.3.60.0050.00216.49
4.3.50.0060.00216.49
4.3.40.0070.00116.49
4.3.30.0030.00216.49
4.3.20.0060.00216.49
4.3.10.0040.00316.49
4.3.00.0050.00316.49

preferences:
63.45 ms | 2698 KiB | 5 Q