3v4l.org

run code in 300+ PHP versions simultaneously
<?php /** * @param int|float|string $timestamp */ function createDateTimeImmutableFromTimestamp($timestamp): \DateTimeImmutable { if (\is_string($timestamp)) { $timestamp = \ctype_digit($timestamp) ? (int)$timestamp : (float)$timestamp; } $secs = (int)$timestamp; $usecs = \is_float($timestamp) ? (int)(1000000 * ($timestamp - $secs)) : 0; return \DateTimeImmutable::createFromFormat('U u', \sprintf('%d %06d', $secs, $usecs)); } $tests = [time(), microtime(true), 1234567890.123, '1.12345678901e9']; foreach ($tests as $test) { echo "{$test}: " . createDateTimeImmutableFromTimestamp($test)->format('Y-m-d H:i:s.u') . "\n"; }

preferences:
16.87 ms | 402 KiB | 5 Q