openpsa/ranger
支持多语言环境的日期和时间范围格式化工具
v0.5.8.1
2024-03-05 15:44 UTC
Requires
- php: >=7.0
- symfony/intl: ~2.6|~3.4|~4.0|~5.0|~6.0|~7.0
Requires (Dev)
- phpunit/phpunit: >=6.5
Suggests
- ext-intl: Needed for usage with other locales than 'en'
README
Ranger是一个日期和时间范围的格式化工具,基于Adam Shaw在fullCalendar中的formatRange
算法(略有松散)。
一些示例
<?php use OpenPsa\Ranger\Ranger; $ranger = new Ranger('en'); echo $ranger->format('2013-10-05', '2013-10-20'); // Oct 5–20, 2013 echo $ranger->format('2013-10-05', '2013-11-20'); // Oct 5 – Nov 20, 2013 $ranger = new Ranger('en_GB'); echo $ranger->format('2013-10-05', '2013-10-20'); // 5–20 Oct 2013 echo $ranger->format('2013-10-05', '2013-11-20'); // 5 Oct – 20 Nov 2013 $ranger = new Ranger('de'); echo $ranger->format('2013-10-05', '2013-10-20'); // 05.–20.10.2013 echo $ranger->format('2013-10-05', '2013-11-20'); // 05.10.–20.11.2013
用法
要使用Ranger在非"en"
语言环境下,您需要安装php-intl
扩展。
使用您语言的名称作为参数实例化ranger。您也可以传递null
来使用ini.default_locale
设置。之后,您可以使用两个日期参数调用format()
方法。接受类型包括
DateTime
对象- 字符串(任何
DateTime
可以读取的格式) - Unix时间戳
null
(表示当前日期)
输出定制
<?php use OpenPsa\Ranger\Ranger; use IntlDateFormatter; $ranger = new Ranger('en'); $ranger ->setRangeSeparator(' and ') ->setDateTimeSeparator(', between ') ->setDateType(IntlDateFormatter::LONG) ->setTimeType(IntlDateFormatter::SHORT); echo $ranger->format('2013-10-05 10:00:01', '2013-10-05 13:30:00'); // October 5, 2013, between 10:00 AM and 1:30 PM