diff --git a/README.md b/README.md index a520f83..04d2502 100644 --- a/README.md +++ b/README.md @@ -25,9 +25,9 @@ composer require coduo/php-humanizer ```php use Coduo\PHPHumanizer\StringHumanizer; -echo StringHumanizer::humanize('field_name'); // "Field Name" -echo StringHumanizer::humanize('user_id'); // "User" -echo StringHumanizer::humanize('field_name', false); // "field name" +StringHumanizer::humanize('field_name'); // "Field Name" +StringHumanizer::humanize('user_id'); // "User" +StringHumanizer::humanize('field_name', false); // "field name" ``` **Truncate** @@ -39,10 +39,10 @@ use Coduo\PHPHumanizer\StringHumanizer; $text = 'Lorem ipsum dolorem si amet, lorem ipsum. Dolorem sic et nunc.'; -echo StringHumanizer::truncate($text, 8); // "Lorem ipsum" -echo StringHumanizer::truncate($text, 8, '...'); // "Lorem ipsum..." -echo StringHumanizer::truncate($text, 2); // "Lorem" -echo StringHumanizer::truncate($text, strlen($text)); // "Lorem ipsum dolorem si amet, lorem ipsum. Dolorem sic et nunc." +StringHumanizer::truncate($text, 8); // "Lorem ipsum" +StringHumanizer::truncate($text, 8, '...'); // "Lorem ipsum..." +StringHumanizer::truncate($text, 2); // "Lorem" +StringHumanizer::truncate($text, strlen($text)); // "Lorem ipsum dolorem si amet, lorem ipsum. Dolorem sic et nunc." ``` @@ -55,10 +55,10 @@ use Coduo\PHPHumanizer\StringHumanizer; $text = '

HyperText Markup Language, commonly referred to as HTML, is the standard markup language used to create web pages.[1] Web browsers can read HTML files and render them into visible or audible web pages. HTML describes the structure of a website semantically along with cues for presentation, making it a markup language, rather than a programming language.

'; -echo StringHumanizer::truncateHtml($text, 3); // "HyperText" -echo StringHumanizer::truncateHtml($text, 12, ''); // "HyperText Markup" -echo StringHumanizer::truncateHtml($text, 50, '', '...'); // "HyperText Markup Language, commonly referred to as..." -echo StringHumanizer::truncateHtml($text, 75, '', '...'); // 'HyperText Markup Language, commonly referred to as HTML, is the standard markup...' +StringHumanizer::truncateHtml($text, 3); // "HyperText" +StringHumanizer::truncateHtml($text, 12, ''); // "HyperText Markup" +StringHumanizer::truncateHtml($text, 50, '', '...'); // "HyperText Markup Language, commonly referred to as..." +StringHumanizer::truncateHtml($text, 75, '', '...'); // 'HyperText Markup Language, commonly referred to as HTML, is the standard markup...' ``` @@ -69,12 +69,12 @@ echo StringHumanizer::truncateHtml($text, 75, '', ```php use Coduo\PHPHumanizer\NumberHumanizer; -echo NumberHumanizer::ordinalize(0); // "0th" -echo NumberHumanizer::ordinalize(1); // "1st" -echo NumberHumanizer::ordinalize(2); // "2nd" -echo NumberHumanizer::ordinalize(23); // "23rd" -echo NumberHumanizer::ordinalize(1002, 'nl'); // "1002e" -echo NumberHumanizer::ordinalize(-111); // "-111th" +NumberHumanizer::ordinalize(0); // "0th" +NumberHumanizer::ordinalize(1); // "1st" +NumberHumanizer::ordinalize(2); // "2nd" +NumberHumanizer::ordinalize(23); // "23rd" +NumberHumanizer::ordinalize(1002, 'nl'); // "1002e" +NumberHumanizer::ordinalize(-111); // "-111th" ``` @@ -83,25 +83,25 @@ echo NumberHumanizer::ordinalize(-111); // "-111th" ```php use Coduo\PHPHumanizer\NumberHumanizer; -echo NumberHumanizer::ordinal(0); // "th" -echo NumberHumanizer::ordinal(1); // "st" -echo NumberHumanizer::ordinal(2); // "nd" -echo NumberHumanizer::ordinal(23); // "rd" -echo NumberHumanizer::ordinal(1002); // "nd" -echo NumberHumanizer::ordinal(-111, 'nl'); // "e" +NumberHumanizer::ordinal(0); // "th" +NumberHumanizer::ordinal(1); // "st" +NumberHumanizer::ordinal(2); // "nd" +NumberHumanizer::ordinal(23); // "rd" +NumberHumanizer::ordinal(1002); // "nd" +NumberHumanizer::ordinal(-111, 'nl'); // "e" ``` **Roman numbers** ```php use Coduo\PHPHumanizer\NumberHumanizer; -echo NumberHumanizer::toRoman(1); // "I" -echo NumberHumanizer::toRoman(5); // "V" -echo NumberHumanizer::toRoman(1300); // "MCCC" +NumberHumanizer::toRoman(1); // "I" +NumberHumanizer::toRoman(5); // "V" +NumberHumanizer::toRoman(1300); // "MCCC" -echo NumberHumanizer::fromRoman("MMMCMXCIX"); // 3999 -echo NumberHumanizer::fromRoman("V"); // 5 -echo NumberHumanizer::fromRoman("CXXV"); // 125 +NumberHumanizer::fromRoman("MMMCMXCIX"); // 3999 +NumberHumanizer::fromRoman("V"); // 5 +NumberHumanizer::fromRoman("CXXV"); // 125 ``` **Binary Suffix** @@ -111,15 +111,15 @@ Convert a number of bytes in to the highest applicable data unit ```php use Coduo\PHPHumanizer\NumberHumanizer; -echo NumberHumanizer::binarySuffix(0); // "0 bytes" -echo NumberHumanizer::binarySuffix(1); // "1 bytes" -echo NumberHumanizer::binarySuffix(1024); // "1 kB" -echo NumberHumanizer::binarySuffix(1025); // "1 kB" -echo NumberHumanizer::binarySuffix(1536); // "1.5 kB" -echo NumberHumanizer::binarySuffix(1048576 * 5); // "5 MB" -echo NumberHumanizer::binarySuffix(1073741824 * 2); // "2 GB" -echo NumberHumanizer::binarySuffix(1099511627776 * 3); // "3 TB" -echo NumberHumanizer::binarySuffix(1325899906842624); // "1.18 PB" +NumberHumanizer::binarySuffix(0); // "0 bytes" +NumberHumanizer::binarySuffix(1); // "1 bytes" +NumberHumanizer::binarySuffix(1024); // "1 kB" +NumberHumanizer::binarySuffix(1025); // "1 kB" +NumberHumanizer::binarySuffix(1536); // "1.5 kB" +NumberHumanizer::binarySuffix(1048576 * 5); // "5 MB" +NumberHumanizer::binarySuffix(1073741824 * 2); // "2 GB" +NumberHumanizer::binarySuffix(1099511627776 * 3); // "3 TB" +NumberHumanizer::binarySuffix(1325899906842624); // "1.18 PB" ``` Number can be also formatted for specific locale @@ -127,7 +127,7 @@ Number can be also formatted for specific locale ```php use Coduo\PHPHumanizer\NumberHumanizer; -echo NumberHumanizer::binarySuffix(1536, 'pl'); // "1,5 kB" +NumberHumanizer::binarySuffix(1536, 'pl'); // "1,5 kB" ``` Number can also be humanized with a specific number of decimal places with `preciseBinarySuffix($number, $precision, $locale = 'en')` @@ -136,8 +136,8 @@ The precision parameter must be between 0 and 3. ```php use Coduo\PHPHumanizer\NumberHumanizer; -echo NumberHumanizer::preciseBinarySuffix(1024, 2); // "1.00 kB" -echo NumberHumanizer::preciseBinarySuffix(1325899906842624, 3); // "1.178 PB" +NumberHumanizer::preciseBinarySuffix(1024, 2); // "1.00 kB" +NumberHumanizer::preciseBinarySuffix(1325899906842624, 3); // "1.178 PB" ``` This function also supports locale @@ -145,7 +145,7 @@ This function also supports locale ```php use Coduo\PHPHumanizer\NumberHumanizer; -echo NumberHumanizer::preciseBinarySuffix(1325899906842624, 3, 'pl'); // "1,178 PB" +NumberHumanizer::preciseBinarySuffix(1325899906842624, 3, 'pl'); // "1,178 PB" ``` **Metric Suffix** @@ -153,14 +153,14 @@ echo NumberHumanizer::preciseBinarySuffix(1325899906842624, 3, 'pl'); // "1,178 ```php use Coduo\PHPHumanizer\NumberHumanizer; -echo NumberHumanizer::metricSuffix(-1); // "-1" -echo NumberHumanizer::metricSuffix(0); // "0" -echo NumberHumanizer::metricSuffix(1); // "1" -echo NumberHumanizer::metricSuffix(101); // "101" -echo NumberHumanizer::metricSuffix(1000); // "1k" -echo NumberHumanizer::metricSuffix(1240); // "1.2k" -echo NumberHumanizer::metricSuffix(1240000); // "1.24M" -echo NumberHumanizer::metricSuffix(3500000); // "3.5M" +NumberHumanizer::metricSuffix(-1); // "-1" +NumberHumanizer::metricSuffix(0); // "0" +NumberHumanizer::metricSuffix(1); // "1" +NumberHumanizer::metricSuffix(101); // "101" +NumberHumanizer::metricSuffix(1000); // "1k" +NumberHumanizer::metricSuffix(1240); // "1.2k" +NumberHumanizer::metricSuffix(1240000); // "1.24M" +NumberHumanizer::metricSuffix(3500000); // "3.5M" ``` Number can be also formatted for specific locale @@ -168,7 +168,7 @@ Number can be also formatted for specific locale ```php use Coduo\PHPHumanizer\NumberHumanizer; -echo NumberHumanizer::metricSuffix(1240000, 'pl'); // "1,24M" +NumberHumanizer::metricSuffix(1240000, 'pl'); // "1,24M" ``` ## Collections @@ -178,9 +178,9 @@ echo NumberHumanizer::metricSuffix(1240000, 'pl'); // "1,24M" ```php use Coduo\PHPHumanizer\CollectionHumanizer; -echo CollectionHumanizer::oxford(['Michal', 'Norbert', 'Lukasz', 'Pawel'], 2); // "Michal, Norbert, and 2 others" -echo CollectionHumanizer::oxford(['Michal', 'Norbert', 'Lukasz'], 2); // "Michal, Norbert, and 1 other" -echo CollectionHumanizer::oxford(['Michal', 'Norbert']); // "Michal and Norbert" +CollectionHumanizer::oxford(['Michal', 'Norbert', 'Lukasz', 'Pawel'], 2); // "Michal, Norbert, and 2 others" +CollectionHumanizer::oxford(['Michal', 'Norbert', 'Lukasz'], 2); // "Michal, Norbert, and 1 other" +CollectionHumanizer::oxford(['Michal', 'Norbert']); // "Michal and Norbert" ``` Oxford is using translator component, so you can use whatever string format you like. @@ -192,23 +192,23 @@ Oxford is using translator component, so you can use whatever string format you ```php use Coduo\PHPHumanizer\DateTimeHumanizer; -echo DateTimeHumanizer::difference(new \DateTime("2014-04-26 13:00:00"), new \DateTime("2014-04-26 13:00:00")); // just now -echo DateTimeHumanizer::difference(new \DateTime("2014-04-26 13:00:00"), new \DateTime("2014-04-26 13:00:05")); // 5 seconds from now -echo DateTimeHumanizer::difference(new \DateTime("2014-04-26 13:00:00"), new \DateTime("2014-04-26 12:59:00")); // 1 minute ago -echo DateTimeHumanizer::difference(new \DateTime("2014-04-26 13:00:00"), new \DateTime("2014-04-26 12:45:00")); // 15 minutes ago -echo DateTimeHumanizer::difference(new \DateTime("2014-04-26 13:00:00"), new \DateTime("2014-04-26 13:15:00")); // 15 minutes from now -echo DateTimeHumanizer::difference(new \DateTime("2014-04-26 13:00:00"), new \DateTime("2014-04-26 14:00:00")); // 1 hour from now -echo DateTimeHumanizer::difference(new \DateTime("2014-04-26 13:00:00"), new \DateTime("2014-04-26 15:00:00")); // 2 hours from now -echo DateTimeHumanizer::difference(new \DateTime("2014-04-26 13:00:00"), new \DateTime("2014-04-26 12:00:00")); // 1 hour ago -echo DateTimeHumanizer::difference(new \DateTime("2014-04-26"), new \DateTime("2014-04-25")); // 1 day ago -echo DateTimeHumanizer::difference(new \DateTime("2014-04-26"), new \DateTime("2014-04-24")); // 2 days ago -echo DateTimeHumanizer::difference(new \DateTime("2014-04-26"), new \DateTime("2014-04-28")); // 2 days from now -echo DateTimeHumanizer::difference(new \DateTime("2014-04-01"), new \DateTime("2014-04-15")); // 2 weeks from now -echo DateTimeHumanizer::difference(new \DateTime("2014-04-15"), new \DateTime("2014-04-07")); // 1 week ago -echo DateTimeHumanizer::difference(new \DateTime("2014-01-01"), new \DateTime("2014-04-01")); // 3 months from now -echo DateTimeHumanizer::difference(new \DateTime("2014-05-01"), new \DateTime("2014-04-01")); // 1 month ago -echo DateTimeHumanizer::difference(new \DateTime("2015-05-01"), new \DateTime("2014-04-01")); // 1 year ago -echo DateTimeHumanizer::difference(new \DateTime("2014-05-01"), new \DateTime("2016-04-01")); // 2 years from now +DateTimeHumanizer::difference(new \DateTime("2014-04-26 13:00:00"), new \DateTime("2014-04-26 13:00:00")); // just now +DateTimeHumanizer::difference(new \DateTime("2014-04-26 13:00:00"), new \DateTime("2014-04-26 13:00:05")); // 5 seconds from now +DateTimeHumanizer::difference(new \DateTime("2014-04-26 13:00:00"), new \DateTime("2014-04-26 12:59:00")); // 1 minute ago +DateTimeHumanizer::difference(new \DateTime("2014-04-26 13:00:00"), new \DateTime("2014-04-26 12:45:00")); // 15 minutes ago +DateTimeHumanizer::difference(new \DateTime("2014-04-26 13:00:00"), new \DateTime("2014-04-26 13:15:00")); // 15 minutes from now +DateTimeHumanizer::difference(new \DateTime("2014-04-26 13:00:00"), new \DateTime("2014-04-26 14:00:00")); // 1 hour from now +DateTimeHumanizer::difference(new \DateTime("2014-04-26 13:00:00"), new \DateTime("2014-04-26 15:00:00")); // 2 hours from now +DateTimeHumanizer::difference(new \DateTime("2014-04-26 13:00:00"), new \DateTime("2014-04-26 12:00:00")); // 1 hour ago +DateTimeHumanizer::difference(new \DateTime("2014-04-26"), new \DateTime("2014-04-25")); // 1 day ago +DateTimeHumanizer::difference(new \DateTime("2014-04-26"), new \DateTime("2014-04-24")); // 2 days ago +DateTimeHumanizer::difference(new \DateTime("2014-04-26"), new \DateTime("2014-04-28")); // 2 days from now +DateTimeHumanizer::difference(new \DateTime("2014-04-01"), new \DateTime("2014-04-15")); // 2 weeks from now +DateTimeHumanizer::difference(new \DateTime("2014-04-15"), new \DateTime("2014-04-07")); // 1 week ago +DateTimeHumanizer::difference(new \DateTime("2014-01-01"), new \DateTime("2014-04-01")); // 3 months from now +DateTimeHumanizer::difference(new \DateTime("2014-05-01"), new \DateTime("2014-04-01")); // 1 month ago +DateTimeHumanizer::difference(new \DateTime("2015-05-01"), new \DateTime("2014-04-01")); // 1 year ago +DateTimeHumanizer::difference(new \DateTime("2014-05-01"), new \DateTime("2016-04-01")); // 2 years from now ``` **Precise difference** @@ -216,9 +216,9 @@ echo DateTimeHumanizer::difference(new \DateTime("2014-05-01"), new \DateTime("2 ```php use Coduo\PHPHumanizer\DateTimeHumanizer; -echo DateTimeHumanizer::preciseDifference(new \DateTime("2014-04-26 13:00:00"), new \DateTime("2014-04-25 11:20:00")); // 1 day, 1 hour, 40 minutes ago -echo DateTimeHumanizer::preciseDifference(new \DateTime("2014-04-26 13:00:00"), new \DateTime("2015-04-28 17:00:00")); // 1 year, 2 days, 4 hours from now -echo DateTimeHumanizer::preciseDifference(new \DateTime("2014-04-26 13:00:00"), new \DateTime("2016-04-27 13:00:00")); // 2 years, 1 day from now +DateTimeHumanizer::preciseDifference(new \DateTime("2014-04-26 13:00:00"), new \DateTime("2014-04-25 11:20:00")); // 1 day, 1 hour, 40 minutes ago +DateTimeHumanizer::preciseDifference(new \DateTime("2014-04-26 13:00:00"), new \DateTime("2015-04-28 17:00:00")); // 1 year, 2 days, 4 hours from now +DateTimeHumanizer::preciseDifference(new \DateTime("2014-04-26 13:00:00"), new \DateTime("2016-04-27 13:00:00")); // 2 years, 1 day from now ``` Currently we support following languages: