#PHP Humanizer
Humanize values to make them readable for regular people ;)
#Installation
Add to your composer.json
require: {
"coduo/php-humanizer": "dev-master"
}
#Usage
Humanize
useCoduo\PHPHumanizer\String;
echo String::humanize('field_name'); // "Field Name"echo String::humanize('user_id'); // "User"echo String::humanize('field_name', false); // "field name"Truncate
Truncate string to word closest to a certain length
useCoduo\PHPHumanizer\String;
$text = 'Lorem ipsum dolorem si amet, lorem ipsum. Dolorem sic et nunc.';
echo String::truncate($text, 8); // "Lorem ipsum"echo String::truncate($text, 8, '...'); // "Lorem ipsum..."echo String::truncate($text, 2); // "Lorem"echo String::truncate($text, strlen($text)); // "Lorem ipsum dolorem si amet, lorem ipsum. Dolorem sic et nunc."Ordinalize
useCoduo\PHPHumanizer\Number;
echo Number::ordinalize(0); // "0th"echo Number::ordinalize(1); // "1st"echo Number::ordinalize(2); // "2nd"echo Number::ordinalize(23); // "23rd"echo Number::ordinalize(1002); // "1002nd"echo Number::ordinalize(-111); // "-111th"Ordinal
useCoduo\PHPHumanizer\Number;
echo Number::ordinal(0); // "th"echo Number::ordinal(1); // "st"echo Number::ordinal(2); // "nd"echo Number::ordinal(23); // "rd"echo Number::ordinal(1002); // "nd"echo Number::ordinal(-111); // "th"Roman numbers
useCoduo\PHPHumanizer\Number;
echo Number::toRoman(1); // "I"echo Number::toRoman(5); // "V"echo Number::toRoman(1300); // "MCCC"echo Number::fromRoman("MMMCMXCIX"); // 3999echo Number::fromRoman("V"); // 5echo Number::fromRoman("CXXV"); // 125Binary Suffix
useCoduo\PHPHumanizer\Number;
echo Number::binarySuffix(0); // "0 bytes"echo Number::binarySuffix(1); // "1 bytes"echo Number::binarySuffix(1024); // "1 kB"echo Number::binarySuffix(1025); // "1 kB"echo Number::binarySuffix(1536); // "1.5 kB"echo Number::binarySuffix(1048576 * 5); // "5 MB"echo Number::binarySuffix(1073741824 * 2); // "2 GB"echo Number::binarySuffix(1099511627776 * 3); // "3 TB"echo Number::binarySuffix(1325899906842624); // "1.18 PB"Number can be also formatted for specific locale
useCoduo\PHPHumanizer\Number;
echo Number::binarySuffix(1536, 'pl'); // "1,5 kB"Metric Suffix
useCoduo\PHPHumanizer\Number;
echo Number::metricSuffix(-1); // "-1"echo Number::metricSuffix(0); // "0"echo Number::metricSuffix(1); // "1"echo Number::metricSuffix(101); // "101"echo Number::metricSuffix(1000); // "1k"echo Number::metricSuffix(1240); // "1.2k"echo Number::metricSuffix(1240000); // "1.24M"echo Number::metricSuffix(3500000); // "3.5M"Number can be also formatted for specific locale
useCoduo\PHPHumanizer\Number;
echo Number::metricSuffix(1240000, 'pl'); // "1,24M"Difference
useCoduo\PHPHumanizer\DateTime;
echo DateTime::difference(new \DateTime("2014-04-26 13:00:00"), new \DateTime("2014-04-26 13:00:00"); // just nowecho DateTime::difference(new \DateTime("2014-04-26 13:00:00"), new \DateTime("2014-04-26 13:00:05"); // 5 seconds from nowecho DateTime::difference(new \DateTime("2014-04-26 13:00:00"), new \DateTime("2014-04-26 12:59:00"); // 1 minute agoecho DateTime::difference(new \DateTime("2014-04-26 13:00:00"), new \DateTime("2014-04-26 12:45:00"); // 15 minutes agoecho DateTime::difference(new \DateTime("2014-04-26 13:00:00"), new \DateTime("2014-04-26 13:15:00"); // 15 minutes from nowecho DateTime::difference(new \DateTime("2014-04-26 13:00:00"), new \DateTime("2014-04-26 14:00:00"); // 1 hour from nowecho DateTime::difference(new \DateTime("2014-04-26 13:00:00"), new \DateTime("2014-04-26 15:00:00"); // 2 hours from nowecho DateTime::difference(new \DateTime("2014-04-26 13:00:00"), new \DateTime("2014-04-26 12:00:00"); // 1 hour agoecho DateTime::difference(new \DateTime("2014-04-26"), new \DateTime("2014-04-25"); // 1 day agoecho DateTime::difference(new \DateTime("2014-04-26"), new \DateTime("2014-04-24"); // 2 days agoecho DateTime::difference(new \DateTime("2014-04-26"), new \DateTime("2014-04-28"); // 2 days from nowecho DateTime::difference(new \DateTime("2014-04-01"), new \DateTime("2014-04-15"); // 2 weeks from nowecho DateTime::difference(new \DateTime("2014-04-15"), new \DateTime("2014-04-07"); // 1 week agoecho DateTime::difference(new \DateTime("2014-01-01"), new \DateTime("2014-04-01"); // 3 months from nowecho DateTime::difference(new \DateTime("2014-05-01"), new \DateTime("2014-04-01"); // 1 month agoecho DateTime::difference(new \DateTime("2015-05-01"), new \DateTime("2014-04-01"); // 1 year agoecho DateTime::difference(new \DateTime("2014-05-01"), new \DateTime("2016-04-01"); // 2 years from nowPrecise difference
useCoduo\PHPHumanizer\DateTime;
echo DateTime::preciseDifference(new \DateTime("2014-04-26 13:00:00"), new \DateTime("2014-04-25 11:20:00"); // 1 day, 1 hour, 40 minutes agoecho DateTime::preciseDifference(new \DateTime("2014-04-26 13:00:00"), new \DateTime("2015-04-28 17:00:00"); // 1 year, 2 days, 4 hours from nowecho DateTime::preciseDifference(new \DateTime("2014-04-26 13:00:00"), new \DateTime("2016-04-27 13:00:00"); // 2 years, 1 day from nowCurrently we support following languages:
This lib was inspired by Java Humanize Lib && Rails Active Support