When trying to create a DateTime from a string, PHP essentially doesn't care about leading zeroes in hours.
When converting a DateTime to a string, PHP will honor leading zeroes as documented in date().
This page describes the different compound date/time formats that the strtotime(), DateTime and date_create() parser understands.
Description | Formats | Examples |
---|---|---|
DD | "0" [0-9] | [1-2][0-9] | "3" [01] | "02", "12", "31" |
doy | "00"[1-9] | "0"[1-9][0-9] | [1-2][0-9][0-9] | "3"[0-5][0-9] | "36"[0-6] | "001", "012", "180", "350", "366" |
frac | . [0-9]+ | ".21342", ".85" |
hh | "0"?[1-9] | "1"[0-2] | "04", "7", "12" |
HH | [01][0-9] | "2"[0-4] | "04", "7", "19" |
meridian | [AaPp] .? [Mm] .? [\0\t ] | "A.m.", "pM", "am." |
ii | [0-5][0-9] | "04", "8", "59" |
II | [0-5][0-9] | "04", "08", "59" |
M | 'jan' | 'feb' | 'mar' | 'apr' | 'may' | 'jun' | 'jul' | 'aug' | 'sep' | 'sept' | 'oct' | 'nov' | 'dec' | |
MM | [0-1][0-9] | "00", "12" |
space | [ \t] | |
ss | [0-5][0-9] | "04", "8", "59" |
SS | [0-5][0-9] | "04", "08", "59" |
W | "0"[1-9] | [1-4][0-9] | "5"[0-3] | "05", "17", "53" |
tzcorrection | "GMT"? [+-] hh ":"? II? | "+0400", "GMT-07:00", "-07:00" |
YY | [0-9]{4} | "2000", "2008", "1978" |
Description | Format | Examples |
---|---|---|
Common Log Format | dd "/" M "/" YY : HH ":" II ":" SS space tzcorrection | "10/Oct/2000:13:55:36 -0700" |
EXIF | YY ":" MM ":" DD " " HH ":" II ":" SS | "2008:08:07 18:11:31" |
ISO year with ISO week | YY "-"? "W" W | "2008W27", "2008-W28" |
ISO year with ISO week and day | YY "-"? "W" W "-"? [0-7] | "2008W273", "2008-W28-3" |
MySQL | YY "-" MM "-" DD " " HH ":" II ":" SS | "2008-08-07 18:11:31" |
PostgreSQL: Year with day-of-year | YY "."? doy | "2008.197", "2008197" |
SOAP | YY "-" MM "-" DD "T" HH ":" II ":" SS frac tzcorrection? | "2008-07-01T22:35:17.02", "2008-07-01T22:35:17.03+08:00" |
Unix Timestamp | "@" "-"? [0-9]+ | "@1215282385" |
XMLRPC | YY MM DD "T" hh ":" II ":" SS | "20080701T22:38:07", "20080701T9:38:07" |
XMLRPC (Compact) | YY MM DD 't' hh II SS | "20080701t223807", "20080701T093807" |
WDDX | YY "-" mm "-" dd "T" hh ":" ii ":" ss | "2008-7-1T9:3:37" |
Note:
The "W" in the "ISO year with ISO week" and "ISO year with ISO week and day" formats is case-sensitive, you can only use the upper case "W".
The "T" in the SOAP, XMRPC and WDDX formats is case-sensitive, you can only use the upper case "T".
The "Unix Timestamp" format sets the timezone to UTC.
When trying to create a DateTime from a string, PHP essentially doesn't care about leading zeroes in hours.
When converting a DateTime to a string, PHP will honor leading zeroes as documented in date().
Examples for HH are off. All one-digit numbers need to be preceded by a 0.