Ranger

Last Commit f9eebb4 (September 2, 2025 12:00 am)
Repository https://github.com/magicoli/ranger
License MIT

Ranger is a formatter for date and time ranges, based (somewhat loosely) on Adam Shaw’s formatRange algorithm in fullCalendar.

Some Examples


<?php
use OpenPsaRangerRanger;

$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

Usage

To use Ranger in any other locale than "en", you will need to have the php-intl extension installed.

Instantiate ranger with the name of your locale as the parameter. You can also pass null to use the ini.default_locale setting. Afterwards, you can call format() with two date parameters. Accepted types are

  • DateTime objects
    • strings (any format that DateTime can read)
    • Unix timestamps
    • null (which means current date).

Output Customization


<?php
use OpenPsaRangerRanger;
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

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *

To respond on your own website, enter the URL of your response which should contain a link to this post’s permalink URL. Your response will then appear (possibly after moderation) on this page. Want to update or remove your response? Update or delete your post and re-enter your post’s URL again. (Find out more about Webmentions.)