Posted By: Anonymous
If I have a PHP string in the format of
mm-dd-YYYY (for example, 10-16-2003), how do I properly convert that to a
Date and then a
DateTime in the format of
YYYY-mm-dd? The only reason I ask for both
DateTime is because I need one in one spot, and the other in a different spot.
strtotime() on your first date then
date('Y-m-d') to convert it back:
$time = strtotime('10/16/2003'); $newformat = date('Y-m-d',$time); echo $newformat; // 2003-10-16
Make note that there is a difference between using forward slash
/ and hyphen
- in the
strtotime() function. To quote from php.net:
Dates in the m/d/y or d-m-y formats
are disambiguated by looking at the
separator between the various
components: if the separator is a
slash (/), then the American m/d/y is
assumed; whereas if the separator is a
dash (-) or a dot (.), then the
European d-m-y format is assumed.
To avoid potential ambiguity, it’s best to use ISO 8601 (YYYY-MM-DD) dates or DateTime::createFromFormat() when possible.