IntlDateFormatter::create
(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)
Create a date formatter
Description
Oop
Oop (constructor)
Procedural
Create a date formatter.
Parameters
localeLocale to use when formatting or parsing or null to use the value specified in the ini setting intl.default_locale.
dateTypeFormat of the date determined by one of the IntlDateFormatter constants. The default value is
IntlDateFormatter::FULL.timeTypeFormat of the time determined by one of the IntlDateFormatter constants. The default value is
IntlDateFormatter::FULL.timezoneTime zone ID. The default (and the one used if null is given) is the one returned by
date_default_timezone_get()or, if applicable, that of theIntlCalendarobject passed for thecalendarparameter. This ID must be a valid identifier on ICUʼs database or an ID representing an explicit offset, such asGMT-05:30.This can also be an
IntlTimeZoneor aDateTimeZoneobject.calendarCalendar to use for formatting or parsing. The default value is null, which corresponds to
IntlDateFormatter::GREGORIAN. This can either be one of the IntlDateFormatter calendar constants or anIntlCalendar. AnyIntlCalendarobject passed will be clone; it will not be changed by theIntlDateFormatter. This will determine the calendar type used (gregorian, islamic, persian, etc.) and, if null is given for thetimezoneparameter, also the timezone used.patternOptional pattern to use when formatting or parsing. Possible patterns are documented at Datepattern.
Return Values
The created IntlDateFormatter or null in case of failure.
Errors/Exceptions
A ValueError is thrown if locale is invalid.
Changelog
| Version | Description |
|---|---|
| 8.4.0 | A ValueError is thrown if locale is invalid. |
| 8.1.0 | Parameters dateType and timeType are now optional. |
Examples
datefmt_create() example
<?php
$fmt = datefmt_create( "en_US" ,IntlDateFormatter::FULL, IntlDateFormatter::FULL,
'America/Los_Angeles', IntlDateFormatter::GREGORIAN );
echo "First Formatted output is ".datefmt_format( $fmt , 0);
$fmt = datefmt_create( "de-DE" ,IntlDateFormatter::FULL, IntlDateFormatter::FULL,
'America/Los_Angeles',IntlDateFormatter::GREGORIAN );
echo "Second Formatted output is ".datefmt_format( $fmt , 0);
$fmt = datefmt_create( "en_US" ,IntlDateFormatter::FULL, IntlDateFormatter::FULL,
'America/Los_Angeles',IntlDateFormatter::GREGORIAN ,"MM/dd/yyyy");
echo "First Formatted output with pattern is ".datefmt_format( $fmt , 0);
$fmt = datefmt_create( "de-DE" ,IntlDateFormatter::FULL, IntlDateFormatter::FULL,
'America/Los_Angeles',IntlDateFormatter::GREGORIAN ,"MM/dd/yyyy");
echo "Second Formatted output with pattern is ".datefmt_format( $fmt , 0);
?>OO example
<?php
$fmt = new IntlDateFormatter( "en_US" ,IntlDateFormatter::FULL, IntlDateFormatter::FULL,
'America/Los_Angeles',IntlDateFormatter::GREGORIAN );
echo "First Formatted output is ".$fmt->format(0);
$fmt = new IntlDateFormatter( "de-DE" ,IntlDateFormatter::FULL, IntlDateFormatter::FULL,
'America/Los_Angeles',IntlDateFormatter::GREGORIAN );
echo "Second Formatted output is ".$fmt->format(0);
$fmt = new IntlDateFormatter( "en_US" ,IntlDateFormatter::FULL, IntlDateFormatter::FULL,
'America/Los_Angeles',IntlDateFormatter::GREGORIAN ,"MM/dd/yyyy");
echo "First Formatted output with pattern is ".$fmt->format(0);
$fmt = new IntlDateFormatter( "de-DE" ,IntlDateFormatter::FULL, IntlDateFormatter::FULL,
'America/Los_Angeles',IntlDateFormatter::GREGORIAN , "MM/dd/yyyy");
echo "Second Formatted output with pattern is ".$fmt->format(0);
?>Example of invalid locale handling
<?php
try {
$fmt = new IntlDateFormatter(
'invalid_locale',
IntlDateFormatter::FULL,
IntlDateFormatter::FULL,
'dunno',
IntlDateFormatter::GREGORIAN,
);
} catch (\Error $e) {
// ...
}
?>The above example will output:
First Formatted output is Wednesday, December 31, 1969 4:00:00 PM PT
Second Formatted output is Mittwoch, 31. Dezember 1969 16:00 Uhr GMT-08:00
First Formatted output with pattern is 12/31/1969
Second Formatted output with pattern is 12/31/1969