マニュアルにもしれっと書いてあるんだけど、DateTimeオブジェクトのコンストラクタにUNIX_TIMEを渡すとタイムゾーンがUTCになってしまう。
$dateTime = new DateTime( '@' . time() );
こんな感じに
$dateTime = new DateTime( '@' . time(), , new DateTimeZone( 'Asia/Tokyo' ) );
コンストラクタでタイムゾーンを指定してもさくっと無視される。
なので、
$dateTime = new DateTime( '@' . time() );
$dateTime -> setTimezone( new DateTimeZone( 'Asia/Tokyo' ) );
みたいに、後からタイムゾーンを設定してやる必要がある。
地味にハマってしまった。