The problem is that your input is in a non-standard format, because the time comes first, then the day of the week, then the month and day of the month. You need to tell PHP how to interpret this.
You can use date_create_from_format
, like so:
$formatted_date = '12:00 PM Sat Mar 15';
// to use your POST data, use $formatted_date = $_POST['time_req'];
echo date_create_from_format('H:i A D M j', $formatted_date)->format('Y-m-d H:i:s');
Output:
2014-03-15 12:00:00
Note: the above is the one-liner, procedural version of the method DateTime::createFromFormat
, as pointed out by @MarkBaker in the comments. You could also do:
$formatted_date = '12:00 PM Sat Mar 15';
// to use your POST data, use $formatted_date = $_POST['time_req'];
// create an object
$mydate = DateTime::createFromFormat('H:i A D M j', $formatted_date);
// invoke the format method
echo $mydate->format('Y-m-d H:i:s');