I have to convert date format in to mm-dd-yyyy
I don't know what is the current date format it is dynamic so if I have dynamic date format is already in mm-dd-yyyy
then date()
function is returning below outout
$date='02-13-2011';
echo date('m-d-Y',strtotime($date));
output is
01-01-1970
?>
http://codepad.org/AFZ6jel7
So I have to check if the date is already in mm-dd-yyyy
then do not apply date formatting.
Is there any other way do this? may be passing one other parameter in these functions or something similar.
Thanks.
I strongly suspect that this is what's causing the problem:
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.
(Found in the strtotime documentation.)
You've got dash separators, so it's assuming d-m-y format, parsing it as a month of 13, and thus effectively failing.
Options I can think of off the top of my head, without being a PHP developer:
- If there's a function which allows you to explicitly say what format the string is in, use that
- Change your format to use slashes
- Change your format to use d-m-y instead of m-d-y
Replacing - with / for m-d-Y will help.
echo date('m-d-Y',strtotime(str_replace('-', '/', $date)));