IntlDateFormatter::create
datefmt_create
IntlDateFormatter::__construct
(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)
IntlDateFormatter::create -- datefmt_create -- IntlDateFormatter::__construct — Create a date formatter
Description
Object-oriented style
?string
$locale,int
$dateType = IntlDateFormatter::FULL,int
$timeType = IntlDateFormatter::FULL,IntlTimeZone|DateTimeZone|string|null
$timezone = null,IntlCalendar|int|null
$calendar = null,?string
$pattern = null): ?IntlDateFormatter
Object-oriented style (constructor)
?string
$locale,int
$dateType = IntlDateFormatter::FULL,int
$timeType = IntlDateFormatter::FULL,IntlTimeZone|DateTimeZone|string|null
$timezone = null,IntlCalendar|int|null
$calendar = null,?string
$pattern = null)
Procedural style
?string
$locale,int
$dateType = IntlDateFormatter::FULL,int
$timeType = IntlDateFormatter::FULL,IntlTimeZone|DateTimeZone|string|null
$timezone = null,IntlCalendar|int|null
$calendar = null,?string
$pattern = null): ?IntlDateFormatter
Create a date formatter.
Parameters
localeLocale to use when formatting or parsing or
nullto 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
nullis given) is the one returned by date_default_timezone_get() or, if applicable, that of the IntlCalendar object 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 IntlTimeZone or a DateTimeZone object.
calendarCalendar to use for formatting or parsing. The default value is
null, which corresponds toIntlDateFormatter::GREGORIAN. This can either be one of the IntlDateFormatter calendar constants or an IntlCalendar. Any IntlCalendar object passed will be clone; it will not be changed by the IntlDateFormatter. This will determine the calendar type used (gregorian, islamic, persian, etc.) and, ifnullis given for thetimezoneparameter, also the timezone used.patternOptional pattern to use when formatting or parsing. Possible patterns are documented at » https://unicode-org.github.io/icu/userguide/format_parse/datetime/.
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 |
Examples
Example #1 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);
?>Example #2 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 #3 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
See Also
- datefmt_format() - Format the date/time value as a string
- datefmt_parse() - Parse string to a timestamp value
- datefmt_get_error_code() - Get the error code from last operation
- datefmt_get_error_message() - Get the error text from the last operation