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";
Output for rfc.property-hooks, git.master, git.master_jit
Europe/Paris 2018-10-28 02:00:00 : timestamp=1540684800 offset=2

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:
61.03 ms | 2698 KiB | 4 Q