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. |