(PHP 5 >= 5.3.0, PHP 7, PHP 8, PECL intl >= 1.0.0)
IntlDateFormatter::create -- datefmt_create -- IntlDateFormatter::__construct — Create a date formatter
Object-oriented style
$locale,$dateType = IntlDateFormatter::FULL,$timeType = IntlDateFormatter::FULL,$timezone = null,$calendar = null,$pattern = nullObject-oriented style (constructor)
$locale,$dateType = IntlDateFormatter::FULL,$timeType = IntlDateFormatter::FULL,$timezone = null,$calendar = null,$pattern = nullProcedural style
$locale,$dateType = IntlDateFormatter::FULL,$timeType = IntlDateFormatter::FULL,$timezone = null,$calendar = null,$pattern = nullCreate a date formatter.
locale
       Locale to use when formatting or parsing or null to use the value
       specified in the ini setting intl.default_locale.
      
dateType
       Format of the date determined by one of the
       IntlDateFormatter
       constants. The default value is
       IntlDateFormatter::FULL.
      
timeType
       Format of the time determined by one of the
       IntlDateFormatter
       constants. The default value is
       IntlDateFormatter::FULL.
      
timezone
       Time 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 the IntlCalendar object passed
       for the calendar parameter. This ID must be a
       valid identifier on ICUʼs database or an ID representing an
       explicit offset, such as GMT-05:30.
      
This can also be an IntlTimeZone or a DateTimeZone object.
calendar
       Calendar 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 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,
       if null is given for the timezone parameter,
       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/.
   The created IntlDateFormatter or null in case of
   failure.
  
| Version | Description | 
|---|---|
| 8.1.0 | 
         Parameters  | 
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