| Day |
--- |
--- |
| d and j |
Day of the month, 2 digits with or without leading zeros |
01 to 31 or
1 to 31
|
| D and l |
A textual representation of a day |
Mon through Sun or
Sunday through Saturday
|
| S |
English ordinal suffix for the day of the month, 2
characters. It's ignored while processing. |
st, nd, rd or
th.
|
| z |
The day of the year (starting from 0) |
0 through 365 |
| Month |
--- |
--- |
| F and M |
A textual representation of a month, such as January or Sept |
January through December or
Jan through Dec
|
| m and n |
Numeric representation of a month, with or without leading zeros |
01 through 12 or
1 through 12
|
| Year |
--- |
--- |
| Y |
A full numeric representation of a year, 4 digits |
Examples: 1999 or 2003 |
| y |
A two digit representation of a year (which is assumed to be in the
range 1970-2069, inclusive)
|
Examples:
99 or 03
(which will be interpreted as 1999 and
2003, respectively)
|
| Time |
--- |
--- |
| a and A |
Ante meridiem and Post meridiem |
am or pm |
| g and h |
12-hour format of an hour with or without leading zero |
1 through 12 or
01 through 12
|
| G and H |
24-hour format of an hour with or without leading zeros |
0 through 23 or
00 through 23
|
| i |
Minutes with leading zeros |
00 to 59 |
| s |
Seconds, with leading zeros |
00 through 59 |
| u |
Microseconds (up to six digits) |
Example: 45, 654321 |
| Timezone |
--- |
--- |
|
e, O,
P and T
|
Timezone identifier, or difference to UTC in hours, or
difference to UTC with colon between hours and minutes, or timezone
abbreviation |
Examples: UTC, GMT,
Atlantic/Azores or
+0200 or +02:00 or
EST, MDT
|
| Full Date/Time |
--- |
--- |
| U |
Seconds since the Unix Epoch (January 1 1970 00:00:00 GMT) |
Example: 1292177455 |
| Whitespace and Separators |
--- |
--- |
| (space) |
One space or one tab |
Example: |
| # |
One of the following separation symbol: ;,
:, /, .,
,, -, ( or
)
|
Example: / |
|
;,
:, /, .,
,, -, ( or
)
|
The specified character. |
Example: - |
| ? |
A random byte |
Example: ^ (Be aware that for UTF-8
characters you might need more than one ?.
In this case, using * is probably what you want
instead) |
| * |
Random bytes until the next separator or digit |
Example: * in Y-*-d with
the string 2009-aWord-08 will match
aWord |
| ! |
Resets all fields (year, month, day, hour, minute, second,
fraction and timezone information) to the Unix Epoch |
Without !, all fields will be set to the
current date and time. |
| | |
Resets all fields (year, month, day, hour, minute, second,
fraction and timezone information) to the Unix Epoch if they have
not been parsed yet |
Y-m-d| will set the year, month and day
to the information found in the string to parse, and sets the hour,
minute and second to 0. |
| + |
If this format specifier is present, trailing data in the
string will not cause an error, but a warning instead |
Use DateTime::getLastErrors() to find out
whether trailing data was present. |