(PHP 5 >= 5.2.1, PHP 7, PHP 8)
DateTime::format -- DateTimeImmutable::format -- DateTimeInterface::format -- date_format — Returns date formatted according to given format
Object-oriented style
$format): string$format): string$format): stringProcedural style
Returns date formatted according to given format.
objectProcedural style only: A DateTime object returned by date_create()
format
      The format of the outputted date string. See the formatting
      options below. There are also several
      predefined date constants
      that may be used instead, so for example DATE_RSS
      contains the format string 'D, d M Y H:i:s'.
     
| formatcharacter | Description | Example returned values | 
|---|---|---|
| Day | --- | --- | 
| d | Day of the month, 2 digits with leading zeros | 01to31 | 
| D | A textual representation of a day, three letters | MonthroughSun | 
| j | Day of the month without leading zeros | 1to31 | 
| l(lowercase 'L') | A full textual representation of the day of the week | SundaythroughSaturday | 
| N | ISO 8601 numeric representation of the day of the week | 1(for Monday) through7(for Sunday) | 
| S | English ordinal suffix for the day of the month, 2 characters | st,nd,rdorth.  Works well withj | 
| w | Numeric representation of the day of the week | 0(for Sunday) through6(for Saturday) | 
| z | The day of the year (starting from 0) | 0through365 | 
| Week | --- | --- | 
| W | ISO 8601 week number of year, weeks starting on Monday | Example: 42(the 42nd week in the year) | 
| Month | --- | --- | 
| F | A full textual representation of a month, such as January or March | JanuarythroughDecember | 
| m | Numeric representation of a month, with leading zeros | 01through12 | 
| M | A short textual representation of a month, three letters | JanthroughDec | 
| n | Numeric representation of a month, without leading zeros | 1through12 | 
| t | Number of days in the given month | 28through31 | 
| Year | --- | --- | 
| L | Whether it's a leap year | 1if it is a leap year,0otherwise. | 
| o | ISO 8601 week-numbering year. This has the same value as Y, except that if the ISO week number
           (W) belongs to the previous or next year, that year
           is used instead. | Examples: 1999or2003 | 
| Y | A full numeric representation of a year, 4 digits | Examples: 1999or2003 | 
| y | A two digit representation of a year | Examples: 99or03 | 
| Time | --- | --- | 
| a | Lowercase Ante meridiem and Post meridiem | amorpm | 
| A | Uppercase Ante meridiem and Post meridiem | AMorPM | 
| B | Swatch Internet time | 000through999 | 
| g | 12-hour format of an hour without leading zeros | 1through12 | 
| G | 24-hour format of an hour without leading zeros | 0through23 | 
| h | 12-hour format of an hour with leading zeros | 01through12 | 
| H | 24-hour format of an hour with leading zeros | 00through23 | 
| i | Minutes with leading zeros | 00to59 | 
| s | Seconds with leading zeros | 00through59 | 
| u | Microseconds. Note that
           date() will always generate 000000since it takes an int
           parameter, whereas DateTime::format() does
           support microseconds if DateTime was
           created with microseconds. | Example: 654321 | 
| v | Milliseconds. Same note applies as for u. | Example: 654 | 
| Timezone | --- | --- | 
| e | Timezone identifier | Examples: UTC,GMT,Atlantic/Azores | 
| I(capital i) | Whether or not the date is in daylight saving time | 1if Daylight Saving Time,0otherwise. | 
| O | Difference to Greenwich time (GMT) without colon between hours and minutes | Example: +0200 | 
| P | Difference to Greenwich time (GMT) with colon between hours and minutes | Example: +02:00 | 
| p | The same as P, but returnsZinstead of+00:00 | Example: +02:00 | 
| T | Timezone abbreviation, if known; otherwise the GMT offset. | Examples: EST,MDT,+05 | 
| Z | Timezone offset in seconds. The offset for timezones west of UTC is always negative, and for those east of UTC is always positive. | -43200through50400 | 
| Full Date/Time | --- | --- | 
| c | ISO 8601 date | 2004-02-12T15:19:21+00:00 | 
| r | » RFC 2822 formatted date | Example: Thu, 21 Dec 2000 16:01:07 +0200 | 
| U | Seconds since the Unix Epoch (January 1 1970 00:00:00 GMT) | See also time() | 
      Unrecognized characters in the format string will be printed
      as-is.  The Z format will always return
      0 when using gmdate().
     
Note:
Since this function only accepts int timestamps the
uformat character is only useful when using the date_format() function with user based timestamps created with date_create().
Returns the formatted date string on success.
| Version | Description | 
|---|---|
| 8.0.0 | Prior to this version, falsewas returned on failure. | 
| 8.0.0 | The format character phas been added. | 
Example #1 DateTime::format() example
Object-oriented style
<?php
$date = new DateTime('2000-01-01');
echo $date->format('Y-m-d H:i:s');
?>
Procedural style
<?php
$date = date_create('2000-01-01');
echo date_format($date, 'Y-m-d H:i:s');
?>
The above example will output:
2000-01-01 00:00:00
This method does not use locales. All output is in English.