Q:

PHP DateTime Format does not respect timezones?

So I have the following code:
$timezone = new DateTimeZone('America/New_York');
$datetime = new DateTime(date('r', 1440543600), $timezone);

echo $datetime->format('l, F j, Y - h:i A e');

This outputs the following:

Tuesday, August 25, 2015 - 11:00 PM +00:00

You would think it would output:

Tuesday, August 25, 2015 - 07:00 PM -04:00

How do I get format to output correctly with the set timezone?

A:

Read the documentation for DateTime::__construct(), where is says for 2nd parameter:

Note: The $timezone parameter and the current timezone are ignored
  when the $time parameter either is a UNIX timestamp (e.g. @946684800)
  or specifies a timezone (e.g. 2010-01-28T15:00:00+02:00).

Based on that, set timezone on DateTime object after you have created it with unix timestamp:
$timezone = new DateTimeZone('America/New_York');
$datetime = new DateTime('@1440543600');
$datetime->setTimezone($timezone);

demo

