<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<refentry xml:id="intldateformatter.create" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
 <refnamediv>
  <refname>IntlDateFormatter::create</refname>
  <refname>datefmt_create</refname>
  <refname>IntlDateFormatter::__construct</refname>
  <refpurpose>Create a date formatter</refpurpose>
 </refnamediv>
 <refsect1 role="description">
  &reftitle.description;
  <para>
   &style.oop;
  </para>
  <methodsynopsis role="IntlDateFormatter">
   <modifier>public</modifier> <modifier>static</modifier> <type class="union"><type>IntlDateFormatter</type><type>null</type></type><methodname>IntlDateFormatter::create</methodname>
   <methodparam><type class="union"><type>string</type><type>null</type></type><parameter>locale</parameter></methodparam>
   <methodparam choice="opt"><type>int</type><parameter>dateType</parameter><initializer>IntlDateFormatter::FULL</initializer></methodparam>
   <methodparam choice="opt"><type>int</type><parameter>timeType</parameter><initializer>IntlDateFormatter::FULL</initializer></methodparam>
   <methodparam choice="opt"><type class="union"><type>IntlTimeZone</type><type>DateTimeZone</type><type>string</type><type>null</type></type><parameter>timezone</parameter><initializer>&null;</initializer></methodparam>
   <methodparam choice="opt"><type class="union"><type>IntlCalendar</type><type>int</type><type>null</type></type><parameter>calendar</parameter><initializer>&null;</initializer></methodparam>
   <methodparam choice="opt"><type class="union"><type>string</type><type>null</type></type><parameter>pattern</parameter><initializer>&null;</initializer></methodparam>
  </methodsynopsis>
  <para>
   &style.oop; (constructor)
  </para>
  <constructorsynopsis role="IntlDateFormatter">
   <modifier>public</modifier> <methodname>IntlDateFormatter::__construct</methodname>
   <methodparam><type class="union"><type>string</type><type>null</type></type><parameter>locale</parameter></methodparam>
   <methodparam choice="opt"><type>int</type><parameter>dateType</parameter><initializer>IntlDateFormatter::FULL</initializer></methodparam>
   <methodparam choice="opt"><type>int</type><parameter>timeType</parameter><initializer>IntlDateFormatter::FULL</initializer></methodparam>
   <methodparam choice="opt"><type class="union"><type>IntlTimeZone</type><type>DateTimeZone</type><type>string</type><type>null</type></type><parameter>timezone</parameter><initializer>&null;</initializer></methodparam>
   <methodparam choice="opt"><type class="union"><type>IntlCalendar</type><type>int</type><type>null</type></type><parameter>calendar</parameter><initializer>&null;</initializer></methodparam>
   <methodparam choice="opt"><type class="union"><type>string</type><type>null</type></type><parameter>pattern</parameter><initializer>&null;</initializer></methodparam>
  </constructorsynopsis>
  <para>
   &style.procedural;
  </para>
  <methodsynopsis>
   <type class="union"><type>IntlDateFormatter</type><type>null</type></type><methodname>datefmt_create</methodname>
   <methodparam><type class="union"><type>string</type><type>null</type></type><parameter>locale</parameter></methodparam>
   <methodparam choice="opt"><type>int</type><parameter>dateType</parameter><initializer>IntlDateFormatter::FULL</initializer></methodparam>
   <methodparam choice="opt"><type>int</type><parameter>timeType</parameter><initializer>IntlDateFormatter::FULL</initializer></methodparam>
   <methodparam choice="opt"><type class="union"><type>IntlTimeZone</type><type>DateTimeZone</type><type>string</type><type>null</type></type><parameter>timezone</parameter><initializer>&null;</initializer></methodparam>
   <methodparam choice="opt"><type class="union"><type>IntlCalendar</type><type>int</type><type>null</type></type><parameter>calendar</parameter><initializer>&null;</initializer></methodparam>
   <methodparam choice="opt"><type class="union"><type>string</type><type>null</type></type><parameter>pattern</parameter><initializer>&null;</initializer></methodparam>
  </methodsynopsis>
  <para>
   Create a date formatter.
  </para>
 </refsect1>

 <refsect1 role="parameters">
  &reftitle.parameters;
  <para>
   <variablelist>
    <varlistentry>
     <term><parameter>locale</parameter></term>
     <listitem>
      <para>
       Locale to use when formatting or parsing or &null; to use the value
       specified in the ini setting <link
       linkend="ini.intl.default-locale">intl.default_locale</link>.
      </para>
     </listitem>
    </varlistentry>
    <varlistentry>
     <term><parameter>dateType</parameter></term>
     <listitem>
      <para>
       Format of the date determined by one of the
       <link linkend="intl.intldateformatter-constants">IntlDateFormatter
       constants</link>. The default value is
       <constant>IntlDateFormatter::FULL</constant>.
      </para>
     </listitem>
    </varlistentry>
    <varlistentry>
     <term><parameter>timeType</parameter></term>
     <listitem>
      <para>
       Format of the time determined by one of the
       <link linkend="intl.intldateformatter-constants">IntlDateFormatter
       constants</link>. The default value is
       <constant>IntlDateFormatter::FULL</constant>.
      </para>
     </listitem>
    </varlistentry>
    <varlistentry>
     <term><parameter>timezone</parameter></term>
     <listitem>
      <para>
       Time zone ID. The default (and the one used if &null; is given) is the
       one returned by <function>date_default_timezone_get</function> or, if
       applicable, that of the <classname>IntlCalendar</classname> object passed
       for the <parameter>calendar</parameter> parameter. This ID must be a
       valid identifier on ICUʼs database or an ID representing an
       explicit offset, such as <literal>GMT-05:30</literal>.
      </para>
      <para>
       This can also be an <classname>IntlTimeZone</classname> or a
       <classname>DateTimeZone</classname> object.
      </para>
     </listitem>
    </varlistentry>
    <varlistentry>
     <term><parameter>calendar</parameter></term>
     <listitem>
      <para>
       Calendar to use for formatting or parsing. The default value is &null;,
       which corresponds to <constant>IntlDateFormatter::GREGORIAN</constant>.
       This can either be one of the
       <link
       linkend="intl.intldateformatter-constants.calendartypes">IntlDateFormatter
       calendar constants</link> or an <classname>IntlCalendar</classname>. Any
       <classname>IntlCalendar</classname> object passed will be clone; it will
       not be changed by the <classname>IntlDateFormatter</classname>. This will
       determine the calendar type used (gregorian, islamic, persian, etc.) and,
       if &null; is given for the <parameter>timezone</parameter> parameter,
       also the timezone used.
      </para>
     </listitem>
    </varlistentry>
    <varlistentry>
     <term><parameter>pattern</parameter></term>
     <listitem>
      <para>
       Optional pattern to use when formatting or parsing.
       Possible patterns are documented at <link
       xlink:href="&url.icu.datepattern;">&url.icu.datepattern;</link>.
      </para>
     </listitem>
    </varlistentry>
   </variablelist>
  </para>
 </refsect1>


 <refsect1 role="returnvalues">
  &reftitle.returnvalues;
  <para>
   The created <classname>IntlDateFormatter</classname> or &null; in case of
   failure.
  </para>
 </refsect1>

 <refsect1 role="changelog">
  &reftitle.changelog;
  <para>
   <informaltable>
    <tgroup cols="2">
     <thead>
      <row>
       <entry>&Version;</entry>
       <entry>&Description;</entry>
      </row>
     </thead>
     <tbody>
      <row>
       <entry>8.1.0</entry>
       <entry>
        <para>
         Parameters <parameter>dateType</parameter> and
         <parameter>timeType</parameter> are now optional.
        </para>
       </entry>
      </row>
     </tbody>
    </tgroup>
   </informaltable>
  </para>
 </refsect1>

 <refsect1 role="examples">
  &reftitle.examples;
  <example>
   <title><function>datefmt_create</function> example</title>
   <programlisting role="php">
<![CDATA[
<?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);
?>
]]>
   </programlisting>
  </example>
  <example>
   <title>OO example</title>
   <programlisting role="php">
<![CDATA[
<?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);
?>
]]>
   </programlisting>
  </example>
  &example.outputs;
  <screen>
<![CDATA[
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
         ]]>
  </screen>
 </refsect1>

 <refsect1 role="seealso">
  &reftitle.seealso;
  <para>
   <simplelist>
    <member><function>datefmt_format</function></member>
    <member><function>datefmt_parse</function></member>
    <member><function>datefmt_get_error_code</function></member>
    <member><function>datefmt_get_error_message</function></member>
   </simplelist>
  </para>
 </refsect1>
</refentry>
<!-- Keep this comment at the end of the file
Local variables:
mode: sgml
sgml-omittag:t
sgml-shorttag:t
sgml-minimize-attributes:nil
sgml-always-quote-attributes:t
sgml-indent-step:1
sgml-indent-data:t
indent-tabs-mode:nil
sgml-parent-document:nil
sgml-default-dtd-file:"~/.phpdoc/manual.ced"
sgml-exposed-tags:nil
sgml-local-catalogs:nil
sgml-local-ecat-files:nil
End:
vim600: syn=xml fen fdm=syntax fdl=2 si
vim: et tw=78 syn=sgml
vi: ts=1 sw=1
-->
