stigwue / happrox
数字和持续时间的近似表示。
v0.1.1
2018-09-06 11:00 UTC
This package is auto-updated.
Last update: 2024-09-29 05:21:15 UTC
README
数字和持续时间的近似表示。例如,将 98,760 表示为 98.7k,将 3,599s 表示为 58m 59s,就像在 Stackoverflow 时间戳和 Twitter 状态计数中那样。
安装
安装通过 composer 完成。
composer require stigwue/happrox
用法
需要配置的只有几个参数:数字的小数位数、日期时间的格式化以及使用直接日期时间格式之前的最大持续时间。在大多数情况下,默认值就足够了。
此外,要近似数字,只需提供 值。对于持续时间,提供 秒数 即可。可以编写自定义函数将其他日期时间格式转换为秒。
请注意,当提供的持续时间超过设置的近似最大持续时间时,提供的持续时间将被视为 UNIX 时间戳并相应地格式化。如果这不符合您的需求,应使用适当的持续时间设置 Happrox::setDurationBase() 来更正日期时间(默认值为 0)。
require_once(__DIR__ . '/happrox.php'); //set time zone, no where like home date_default_timezone_set('Africa/Lagos'); $obj = new Happrox(); echo "Numbers\n"; $happrox = Happrox::number($obj, 10); echo $happrox['value'] . ' -> ' . $happrox['happrox'] . "\n"; $happrox = Happrox::number($obj, 1010); echo $happrox['value'] . ' -> ' . $happrox['happrox'] . "\n"; $happrox = Happrox::number($obj, 123456); echo $happrox['value'] . ' -> ' . $happrox['happrox'] . "\n"; $happrox = Happrox::number($obj, 1010101); echo $happrox['value'] . ' -> ' . $happrox['happrox'] . "\n"; $happrox = Happrox::number($obj, 12345678); echo $happrox['value'] . ' -> ' . $happrox['happrox'] . "\n"; $happrox = Happrox::number($obj, 101010101010); echo $happrox['value'] . ' -> ' . $happrox['happrox'] . "\n"; Happrox::setDurationBase($obj, time(NULL)); echo "Durations\n"; $happrox = Happrox::duration($obj, 36); echo $happrox['value'] . ' -> ' . $happrox['happrox'] . "\n"; $happrox = Happrox::duration($obj, 3599); echo $happrox['value'] . ' -> ' . $happrox['happrox'] . "\n"; $happrox = Happrox::duration($obj, 518400); echo $happrox['value'] . ' -> ' . $happrox['happrox'] . "\n"; $happrox = Happrox::duration($obj, 604799); echo $happrox['value'] . ' -> ' . $happrox['happrox'] . "\n"; $happrox = Happrox::duration($obj, 123456); echo $happrox['value'] . ' -> ' . $happrox['happrox'] . "\n";
Numbers
10 -> 10
1010 -> 1.0k
123456 -> 123.5k
1010101 -> 1.0M
12345678 -> 12.3M
101010101010 -> 101.0B
Durations
36 -> 36s
3599 -> 59m 59s
518400 -> 6d
604799 -> Jul 22, 2018 7:32am
123456 -> 1d 10hr
待办事项
-
处理印度风格的数字近似(lakh)?
-
引入开关以格式化本地工作日(市场日)的持续时间。需要一个有序日期数组以及特定日期的分配(1970年1月1日应该可以)。