3v4l.org

run code in 300+ PHP versions simultaneously
<?php const SECONDS_PER_MINUTE = 60; const SECONDS_PER_HOUR = 60 * SECONDS_PER_MINUTE; const SECONDS_PER_DAY = 24 * SECONDS_PER_HOUR; const DAYS_PER_YEAR = 365; const DAYS_PER_LEAP_YEAR = DAYS_PER_YEAR + 1; const EPOCH_MONTH = 1; const EPOCH_YEAR = 1970; function getDateTime(int $timestamp) : array { $days = intdiv($timestamp, SECONDS_PER_DAY); $year = EPOCH_YEAR; while ($days >= getDaysForYear($year)) { $days -= getDaysForYear($year); $year++; } $daysPerMonth = getDaysPerMonth($year); $month = EPOCH_MONTH; while ($days >= $daysPerMonth[$month]) { $days -= $daysPerMonth[$month]; $month++; } $day = $days + 1; $secondsRemaining = $timestamp % SECONDS_PER_DAY; $hour = intdiv($secondsRemaining, SECONDS_PER_HOUR); $minute = intdiv($secondsRemaining, SECONDS_PER_MINUTE) % SECONDS_PER_MINUTE; $second = $secondsRemaining % SECONDS_PER_MINUTE; return [ 'year' => $year, 'month' => $month, 'day' => $day, 'hour' => $hour, 'minute' => $minute, 'second' => $second ]; } function isLeapYear(int $year) : bool { return $year % 400 === 0 || ($year % 4 === 0 && $year % 100 !== 0); } function getDaysForYear(int $year) : int { return isLeapYear($year) ? DAYS_PER_LEAP_YEAR : DAYS_PER_YEAR; } function getDaysPerMonth(int $year) : array { return [0, 31, isLeapYear($year) ? 29 : 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]; } $time = 1471488076; //08/18/2016 @ 2:41am (UTC) print_r(getDateTime($time));
Output for git.master, git.master_jit, rfc.property-hooks
Array ( [year] => 2016 [month] => 8 [day] => 18 [hour] => 2 [minute] => 41 [second] => 16 )

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:
145.62 ms | 405 KiB | 5 Q