php date_create_from_format返回错误的时间

I'm trying to take a date that is provided by an external system and convert it to a DateTime for use in mine. However, I am running into issues with the date_create_from_format function that is causing the wrong information to appear.

I am receiving a date and time as a string from another function (that I have confirmed is correct when I call it directly). That string is used to construct a DateTime object using a format string that matches the one called to format the string before it is returned to me. However, the resulting DateTime object is a full 12 hours off. The example code is as follows:

var_dump($object->getEndTime());
//string(19) "2017-04-04 18:26 PM" 
//formatted in another function by 
//$endTime = date('Y-m-d G:i A', $endTime);
//return $endTime;

$endTime = date_create_from_format('Y-m-d G:i A', $object->getEndTime());
var_dump($endTime);
//object(DateTime)#150 (3) { ["date"]=> string(26) "2017-04-05 06:26:00.000000" ["timezone_type"]=> int(3) ["timezone"]=> string(16) "America/New_York" } 

As demonstrated, it appears the date_create_from_format function is taking my hours value and moving it forward to match a 12-hour time, despite the matching formats, and then not providing an AM/PM value. Is there something I'm missing regarding this function?