-
Notifications
You must be signed in to change notification settings - Fork 27
Locales
For date, time and currency formatting, Transphporm supports Locales. Currently only enGB is supplied but you can write your own.
To set a locale, use the builder::setLocale
method. This takes either a locale name, for a locale inside Formatter/Locale/{name}.json
e.g.
$template = new \Transphporm\Builder($xml, $tss);
$template->setLocale('enGB');
Currently only enGB is supported. Alternatively, you can provide an array which matches the format used in Formatter/Locale/enGB.json
.
Transphporm supports formatting dates. Either you can reference a \DateTime object or a string. Strings will be attempted to be converted to dates automatically:
$xml = '
<div> </div>
';
$tss = 'div {content: "2015-12-22"; format: date}';
$template = new \Transphporm\Builder($xml, $tss);
echo $template->output()->body;
This will format the date using the date format specified in the locale. For enGB this is d/m/Y
<div>22/12/2015</div>
Alternatively you can specify a format as the second parameter of the formatter. Valid formats are those used by the PHP date
command, as described in the manual. Example:
$xml = '
<div> </div>
';
$tss = 'div {content: "2015-12-22"; format: date "jS M Y"}';
$template = new \Transphporm\Builder($xml, $tss);
echo $template->output()->body;
<div>22nd Dec 2015</div>
You can also format using time
which defaults to H:i
in the locale:
$xml = '
<div> </div>
';
$tss = 'div {content: "2015-12-22 14:34"; format: time}';
$template = new \Transphporm\Builder($xml, $tss);
echo $template->output()->body;
<div>14:34</div>
You can supply the relative
formatter to a date, which will display things like:
- "Tomorrow"
- "Yesterady"
- "Two hours ago"
- "3 weeks ago"
- "In 3 months"
- "In 10 years"
Use the format: date relative;
directive to select this option. The strings are specified in the locale.