PluginProbe
Independent Analytics – WordPress Analytics Plugin / 2.11.1
Independent Analytics – WordPress Analytics Plugin v2.11.1
2.15.5 2.15.4 2.15.3 2.15.2 2.15.1 2.15.0 2.14.10 trunk 1.1 1.10 1.10.1 1.11 1.12 1.13 1.14 1.15 1.16 1.17 1.17.1 1.17.2 1.17.3 1.17.4 1.18 1.18.1 1.19.0 All 120 releases
independent-analytics / IAWP / Utils / Number_Formatter.php
Number_Formatter.php
58 lines 1.5 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 namespace IAWP\Utils;
4
5 use DateTime;
6 use IAWPSCOPED\Proper\Number;
7 /** @internal */
8 class Number_Formatter
9 {
10 /**
11 * Pass in 90 and get back 1:30. Pass in 121 and get back 2:01.
12 *
13 * @param int $seconds
14 *
15 * @return string
16 */
17 public static function second_to_minute_timestamp(int $seconds) : string
18 {
19 $unix_epoch = new DateTime("@0");
20 $now = new DateTime("@{$seconds}");
21 $interval = $unix_epoch->diff($now);
22 return $interval->format('%i:%S');
23 }
24 /**
25 * @param int|float $number
26 * @param int $decimals
27 *
28 * @return string
29 */
30 public static function percent($number, int $decimals = 0) : string
31 {
32 if (\class_exists('\\NumberFormatter')) {
33 $formatter = new \NumberFormatter(\get_locale(), \NumberFormatter::PERCENT);
34 $formatter->setAttribute(\NumberFormatter::MAX_FRACTION_DIGITS, $decimals);
35 return $formatter->format($number / 100);
36 } else {
37 return \number_format_i18n($number, $decimals) . '%';
38 }
39 }
40 /**
41 * @param int|float $number
42 * @param int $decimals
43 *
44 * @return string
45 */
46 public static function decimal($number, int $decimals = 0) : string
47 {
48 return \number_format_i18n($number, $decimals);
49 }
50 public static function integer($number) : string
51 {
52 if ($number < 100000) {
53 return \number_format_i18n($number, 0);
54 }
55 return Number::abbreviate($number, \false);
56 }
57 }
58