php unix到目前为止无法正常工作

i have a unix time 1410938094654 I want to convert this to date time format

 $dt = new DateTime('@1410938094654');
 $dt->setTimeZone(new DateTimeZone('Asia/Tehran'));
 echo $dt->format('F j, Y, g:i a');

But the wrong time will returned

06-11-2000 00:30:54

correct time is GMT: Wednesday, September 17, 2014 7:14:54.654 AM

also my php.ini

  date.timezone = "Asia/Tehran"

gmdate also returns the same date (wrong date)

DateTime accepts unixtime in seconds, and you have it in milliseconds, so you must divide timestamp to 1000 before creating new DateTime object.

 $dt = new DateTime('@1410938094654');

gives: November 6, 46680, 12:30 am

 $dt = new DateTime('@1410938094');

gives September 17, 2014, 7:14 am

Convert it to seconds before using.