| Day | Description | Example |
|---|
| d | Day of the month with leading zeros, 2 digits | 01 - 31 |
| D | Short textual representation of the day of the week, three letters | Mon - Sun |
| j | Day of the month without leading zeros | 1 - 31 |
| l (lowercase L) | Full textual representation of the day of the week | Sunday - Saturday |
| N | ISO-8601 numeric representation of the day of the week | 1 - 7 (Monday - Sunday) |
| S | English ordinal suffix for the day of the month, 2 characters | st, nd, rd, th |
| w | Numeric representation of the day of the week | 0 - 6 (Sunday - Saturday) |
| z | Day of the year | 0 - 365 |
| Week | Description | Example |
|---|
| W | ISO-8601 week of the year, weeks start on Monday | 1 - 52 |
| Month | Description | Example |
|---|
| F | Full textual representation of a month | January - December |
| m | Numeric representation of a month with leading zeros, 2 digits | 01 - 12 |
| M | Short textual representation of a month, three letters | Jan - Dec |
| n | Numeric representation of a month without leading zeros | 1 - 12 |
| t | Number of days in the given month | 28 - 31 |
| Year | Description | Example |
|---|
| L | Whether it's a leap year | 1 (leap year), 0 (otherwise) |
| o | ISO-8601 week-numbering year. 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. | Example: 1999 |
| Y | 4 digit representation of a year | Example: 1999 |
| y | 2 digit representation of a year | 00 - 99 |
| Time | Description | Example |
|---|
| a | Lowercase Ante meridiem and Post meridiem | am, pm |
| A | Uppercase Ante meridiem and Post meridiem | AM, PM |
| B | Swatch Internet time | 000 - 999 |
| g | 12-hour format of an hour without leading zeros | 1 - 12 |
| G | 24-hour format of an hour without leading zeros | 0 - 23 |
| h | 12-hour format of an hour with leading zeros | 01 - 12 |
| H | 24-hour format of an hour with leading zeros | 00 - 23 |
| i | Minutes with leading zeros | 00 - 59 |
| s | Seconds with leading zeros | 00 - 59 |
| u | Microseconds. Note: date() will always generate 000000 since it takes an integer parameter, whereas DateTime::format() does support microseconds if DateTime was created with microseconds. | Example: 654321 |
| v | Milliseconds. Same note as u. | Example: 654 |
| Timezone | Description | Example |
|---|
| e | Timezone identifier | Examples: UTC, GMT, Atlantic/Azores |
| I (uppercase i) | Whether or not the date is in daylight saving time | 1 (daylight saving time), 0 (otherwise) |
| 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 |
| T | Timezone abbreviation | Examples: EST, MDT ... |
| Z | Timezone offset in seconds. The offset for timezones west of UTC is always negative, and for those east of UTC is always positive. | -43200 - 50400 |
| Full | Description | Example |
|---|
| c | ISO 8601 date | Example: 2001-02-03T04:05:06+00:00 |
| r | RFC 2822 formatted date | Example: Sat, 03 Feb 2001 04:05:06 +0000 |
| 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 integer timestamps the u format character is only useful when using the date_format() function with user based timestamps created with date_create().
<?
$format = "y m d h i s u P";
$datetime = "01 02 03 04 05 06 000007 +08:00";
$return = date_parse_from_format($format, $datetime);
print_r($return);
Array
(
[year] => 2001
[month] => 2
[day] => 3
[hour] => 4
[minute] => 5
[second] => 6
[fraction] => 7.0E-6
[warning_count] => 0
[warnings] => Array
(
)
[error_count] => 0
[errors] => Array
(
)
[is_localtime] => 1
[zone_type] => 1
[zone] => 28800
[is_dst] =>
)