openpsa/ranger

支持多语言环境的日期和时间范围格式化工具

v0.5.8.1 2024-03-05 15:44 UTC

This package is auto-updated.

Last update: 2024-09-05 20:38:12 UTC


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