php-doc-en/reference/datetime/datetimeinterface/format.xml
Christoph Michael Becker 34188f8256 Generate ext/date methodsynopses based on stubs
Closes GH-185.


git-svn-id: https://svn.php.net/repository/phpdoc/en/trunk@352143 c90b9560-bf6c-de11-be94-00142212c4b1
2020-12-20 15:06:41 +00:00

428 lines
16 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
<refentry xml:id="datetime.format" xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink">
<refnamediv>
<refname>DateTime::format</refname>
<refname>DateTimeImmutable::format</refname>
<refname>DateTimeInterface::format</refname>
<refname>date_format</refname>
<refpurpose>Returns date formatted according to given format</refpurpose>
</refnamediv>
<refsect1 role="description">
&reftitle.description;
<para>&style.oop;</para>
<methodsynopsis role="oop">
<modifier>public</modifier> <type>string</type><methodname>DateTime::format</methodname>
<methodparam><type>string</type><parameter>format</parameter></methodparam>
</methodsynopsis>
<methodsynopsis role="DateTimeImmutable">
<modifier>public</modifier> <type>string</type><methodname>DateTimeImmutable::format</methodname>
<methodparam><type>string</type><parameter>format</parameter></methodparam>
</methodsynopsis>
<methodsynopsis role="DateTimeInterface">
<modifier>public</modifier> <type>string</type><methodname>DateTimeInterface::format</methodname>
<methodparam><type>string</type><parameter>format</parameter></methodparam>
</methodsynopsis>
<para>&style.procedural;</para>
<methodsynopsis role="procedural">
<type>string</type><methodname>date_format</methodname>
<methodparam><type>DateTimeInterface</type><parameter>object</parameter></methodparam>
<methodparam><type>string</type><parameter>format</parameter></methodparam>
</methodsynopsis>
<para>
Returns date formatted according to given format.
</para>
</refsect1>
<refsect1 role="parameters">
&reftitle.parameters;
<variablelist>
&date.datetime.description;
<varlistentry>
<term><parameter>format</parameter></term>
<listitem>
<para>
The format of the outputted date <type>string</type>. See the formatting
options below. There are also several
<link linkend="datetime.constants.types">predefined date constants</link>
that may be used instead, so for example <constant>DATE_RSS</constant>
contains the format string <literal>'D, d M Y H:i:s'</literal>.
</para>
<para>
<table>
<title>The following characters are recognized in the
<parameter>format</parameter> parameter string</title>
<tgroup cols="3">
<thead>
<row>
<entry><parameter>format</parameter> character</entry>
<entry>Description</entry>
<entry>Example returned values</entry>
</row>
</thead>
<tbody>
<row>
<entry align="center"><emphasis>Day</emphasis></entry>
<entry>---</entry>
<entry>---</entry>
</row>
<row>
<entry><literal>d</literal></entry>
<entry>Day of the month, 2 digits with leading zeros</entry>
<entry><literal>01</literal> to <literal>31</literal></entry>
</row>
<row>
<entry><literal>D</literal></entry>
<entry>A textual representation of a day, three letters</entry>
<entry><literal>Mon</literal> through <literal>Sun</literal></entry>
</row>
<row>
<entry><literal>j</literal></entry>
<entry>Day of the month without leading zeros</entry>
<entry><literal>1</literal> to <literal>31</literal></entry>
</row>
<row>
<entry><literal>l</literal> (lowercase 'L')</entry>
<entry>A full textual representation of the day of the week</entry>
<entry><literal>Sunday</literal> through <literal>Saturday</literal></entry>
</row>
<row>
<entry><literal>N</literal></entry>
<entry>ISO-8601 numeric representation of the day of the week</entry>
<entry><literal>1</literal> (for Monday) through <literal>7</literal> (for Sunday)</entry>
</row>
<row>
<entry><literal>S</literal></entry>
<entry>English ordinal suffix for the day of the month, 2 characters</entry>
<entry>
<literal>st</literal>, <literal>nd</literal>, <literal>rd</literal> or
<literal>th</literal>. Works well with <literal>j</literal>
</entry>
</row>
<row>
<entry><literal>w</literal></entry>
<entry>Numeric representation of the day of the week</entry>
<entry><literal>0</literal> (for Sunday) through <literal>6</literal> (for Saturday)</entry>
</row>
<row>
<entry><literal>z</literal></entry>
<entry>The day of the year (starting from 0)</entry>
<entry><literal>0</literal> through <literal>365</literal></entry>
</row>
<row>
<entry align="center"><emphasis>Week</emphasis></entry>
<entry>---</entry>
<entry>---</entry>
</row>
<row>
<entry><literal>W</literal></entry>
<entry>ISO-8601 week number of year, weeks starting on Monday</entry>
<entry>Example: <literal>42</literal> (the 42nd week in the year)</entry>
</row>
<row>
<entry align="center"><emphasis>Month</emphasis></entry>
<entry>---</entry>
<entry>---</entry>
</row>
<row>
<entry><literal>F</literal></entry>
<entry>A full textual representation of a month, such as January or March</entry>
<entry><literal>January</literal> through <literal>December</literal></entry>
</row>
<row>
<entry><literal>m</literal></entry>
<entry>Numeric representation of a month, with leading zeros</entry>
<entry><literal>01</literal> through <literal>12</literal></entry>
</row>
<row>
<entry><literal>M</literal></entry>
<entry>A short textual representation of a month, three letters</entry>
<entry><literal>Jan</literal> through <literal>Dec</literal></entry>
</row>
<row>
<entry><literal>n</literal></entry>
<entry>Numeric representation of a month, without leading zeros</entry>
<entry><literal>1</literal> through <literal>12</literal></entry>
</row>
<row>
<entry><literal>t</literal></entry>
<entry>Number of days in the given month</entry>
<entry><literal>28</literal> through <literal>31</literal></entry>
</row>
<row>
<entry align="center"><emphasis>Year</emphasis></entry>
<entry>---</entry>
<entry>---</entry>
</row>
<row>
<entry><literal>L</literal></entry>
<entry>Whether it's a leap year</entry>
<entry><literal>1</literal> if it is a leap year, <literal>0</literal> otherwise.</entry>
</row>
<row>
<entry><literal>o</literal></entry>
<entry>ISO-8601 week-numbering year. This has the same value as
<literal>Y</literal>, except that if the ISO week number
(<literal>W</literal>) belongs to the previous or next year, that year
is used instead.</entry>
<entry>Examples: <literal>1999</literal> or <literal>2003</literal></entry>
</row>
<row>
<entry><literal>Y</literal></entry>
<entry>A full numeric representation of a year, 4 digits</entry>
<entry>Examples: <literal>1999</literal> or <literal>2003</literal></entry>
</row>
<row>
<entry><literal>y</literal></entry>
<entry>A two digit representation of a year</entry>
<entry>Examples: <literal>99</literal> or <literal>03</literal></entry>
</row>
<row>
<entry align="center"><emphasis>Time</emphasis></entry>
<entry>---</entry>
<entry>---</entry>
</row>
<row>
<entry><literal>a</literal></entry>
<entry>Lowercase Ante meridiem and Post meridiem</entry>
<entry><literal>am</literal> or <literal>pm</literal></entry>
</row>
<row>
<entry><literal>A</literal></entry>
<entry>Uppercase Ante meridiem and Post meridiem</entry>
<entry><literal>AM</literal> or <literal>PM</literal></entry>
</row>
<row>
<entry><literal>B</literal></entry>
<entry>Swatch Internet time</entry>
<entry><literal>000</literal> through <literal>999</literal></entry>
</row>
<row>
<entry><literal>g</literal></entry>
<entry>12-hour format of an hour without leading zeros</entry>
<entry><literal>1</literal> through <literal>12</literal></entry>
</row>
<row>
<entry><literal>G</literal></entry>
<entry>24-hour format of an hour without leading zeros</entry>
<entry><literal>0</literal> through <literal>23</literal></entry>
</row>
<row>
<entry><literal>h</literal></entry>
<entry>12-hour format of an hour with leading zeros</entry>
<entry><literal>01</literal> through <literal>12</literal></entry>
</row>
<row>
<entry><literal>H</literal></entry>
<entry>24-hour format of an hour with leading zeros</entry>
<entry><literal>00</literal> through <literal>23</literal></entry>
</row>
<row>
<entry><literal>i</literal></entry>
<entry>Minutes with leading zeros</entry>
<entry><literal>00</literal> to <literal>59</literal></entry>
</row>
<row>
<entry><literal>s</literal></entry>
<entry>Seconds with leading zeros</entry>
<entry><literal>00</literal> through <literal>59</literal></entry>
</row>
<row>
<entry><literal>u</literal></entry>
<entry>
Microseconds. Note that
<function>date</function> will always generate
<literal>000000</literal> since it takes an <type>int</type>
parameter, whereas <methodname>DateTime::format</methodname> does
support microseconds if <classname>DateTime</classname> was
created with microseconds.
</entry>
<entry>Example: <literal>654321</literal></entry>
</row>
<row>
<entry><literal>v</literal></entry>
<entry>
Milliseconds (added in PHP 7.0.0). Same note applies as for
<literal>u</literal>.
</entry>
<entry>Example: <literal>654</literal></entry>
</row>
<row>
<entry align="center"><emphasis>Timezone</emphasis></entry>
<entry>---</entry>
<entry>---</entry>
</row>
<row>
<entry><literal>e</literal></entry>
<entry>Timezone identifier</entry>
<entry>Examples: <literal>UTC</literal>, <literal>GMT</literal>, <literal>Atlantic/Azores</literal></entry>
</row>
<row>
<entry><literal>I</literal> (capital i)</entry>
<entry>Whether or not the date is in daylight saving time</entry>
<entry><literal>1</literal> if Daylight Saving Time, <literal>0</literal> otherwise.</entry>
</row>
<row>
<entry><literal>O</literal></entry>
<entry>Difference to Greenwich time (GMT) without colon between hours and minutes</entry>
<entry>Example: <literal>+0200</literal></entry>
</row>
<row>
<entry><literal>P</literal></entry>
<entry>Difference to Greenwich time (GMT) with colon between hours and minutes</entry>
<entry>Example: <literal>+02:00</literal></entry>
</row>
<row>
<entry><literal>p</literal></entry>
<entry>The same as <literal>P</literal>, but returns <literal>Z</literal> instead of <literal>+00:00</literal></entry>
<entry>Example: <literal>+02:00</literal></entry>
</row>
<row>
<entry><literal>T</literal></entry>
<entry>Timezone abbreviation</entry>
<entry>Examples: <literal>EST</literal>, <literal>MDT</literal> ...</entry>
</row>
<row>
<entry><literal>Z</literal></entry>
<entry>Timezone offset in seconds. The offset for timezones west of UTC is always
negative, and for those east of UTC is always positive.</entry>
<entry><literal>-43200</literal> through <literal>50400</literal></entry>
</row>
<row>
<entry align="center"><emphasis>Full Date/Time</emphasis></entry>
<entry>---</entry>
<entry>---</entry>
</row>
<row>
<entry><literal>c</literal></entry>
<entry>ISO 8601 date</entry>
<entry>2004-02-12T15:19:21+00:00</entry>
</row>
<row>
<entry><literal>r</literal></entry>
<entry><link xlink:href="&url.rfc;2822">RFC 2822</link> formatted date</entry>
<entry>Example: <literal>Thu, 21 Dec 2000 16:01:07 +0200</literal></entry>
</row>
<row>
<entry><literal>U</literal></entry>
<entry>Seconds since the Unix Epoch (January 1 1970 00:00:00 GMT)</entry>
<entry>See also <function>time</function></entry>
</row>
</tbody>
</tgroup>
</table>
</para>
<para>
Unrecognized characters in the format string will be printed
as-is. The <literal>Z</literal> format will always return
<literal>0</literal> when using <function>gmdate</function>.
</para>
<note>
<para>
Since this function only accepts <type>int</type> timestamps the
<literal>u</literal> format character is only useful when using the
<function>date_format</function> function with user based timestamps
created with <function>date_create</function>.
</para>
</note>
</listitem>
</varlistentry>
</variablelist>
</refsect1>
<refsect1 role="returnvalues">
&reftitle.returnvalues;
<para>
Returns the formatted date string on success.
</para>
</refsect1>
<refsect1 role="changelog">
&reftitle.changelog;
<informaltable>
<tgroup cols="2">
<thead>
<row>
<entry>&Version;</entry>
<entry>&Description;</entry>
</row>
</thead>
<tbody>
<row>
<entry>8.0.0</entry>
<entry>
Prior to this version, &false; was returned on failure.
</entry>
</row>
</tbody>
</tgroup>
</informaltable>
</refsect1>
<refsect1 role="examples">
&reftitle.examples;
<example>
<title><function>DateTime::format</function> example</title>
<para>&style.oop;</para>
<programlisting role="php">
<![CDATA[
<?php
$date = new DateTime('2000-01-01');
echo $date->format('Y-m-d H:i:s');
?>
]]>
</programlisting>
<para>&style.procedural;</para>
<programlisting role="php">
<![CDATA[
<?php
$date = date_create('2000-01-01');
echo date_format($date, 'Y-m-d H:i:s');
?>
]]>
</programlisting>
&example.outputs;
<screen>
<![CDATA[
2000-01-01 00:00:00
]]>
</screen>
</example>
</refsect1>
<refsect1 role="notes">
&reftitle.notes;
<para>
This method does not use locales. All output is in English.
</para>
</refsect1>
<refsect1 role="seealso">
&reftitle.seealso;
<simplelist>
<member><function>date</function></member>
</simplelist>
</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
-->