<?php function humanTime($hour, $min) { $times = [ 0 => '%s o\'clock', 2 => 'couple of mins past %s', 5 => 'five past %s', 8 => 'around ten past %s', 10 => 'ten past %s', 15 => 'quarter past %s', 20 => 'twenty past %s', 25 => 'twenty five past %s', 27 => 'around half past %s', 30 => 'half past %s', 33 => 'around thirty five past %s', 35 => 'thirty five past %s', 40 => 'twenty to %s', 43 => 'around quarter to %s', 45 => 'quarter to %s', 47 => 'about ten to %s', 50 => 'ten to %s', 53 => 'about five to %s', 55 => 'five to %s' ]; $hourWord = [ 'one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine', 'ten', 'eleven', 'twelve' ]; $hour = (int) $hour; $min = (int) $min; $closest = null; foreach ($times as $key => $item) if ($closest === null || abs($min - $closest) > abs($key - $min)) $closest = $key; if ($hour === 0) $hour = 12; if ($min > 40) $hour = $hour === 12 ? 1 : $hour + 1; return sprintf($times[$closest], $hourWord[(int) $hour - 1]); } // test foreach (range(0, 11) as $hour) { // $hour = str_pad($hour, 2, "0", STR_PAD_LEFT); foreach(range(0, 59) as $min) { // $min = str_pad($min, 2, "0", STR_PAD_LEFT); // echo 'Time: ' . $hour .':' . $min.PHP_EOL; echo 'It\'s ' . humanTime($hour, $min).PHP_EOL; } }
You have javascript disabled. You will not be able to edit any code.
This script was stopped while abusing our resources