手册: http://www.php.net/manual/en/datetime.construct.php// Using a UNIX timestamp. Notice the result is in the UTC time zone. $date = new DateTime('@946684800'); echo $date->format('Y-m-d H:i:sP') . "\n";
你$dt = new DateTime('@1356969600');中的@1356969600时间轴生成的时候用的是哪个时间设置,转换的时候要统一,否则就会出现你那样的问题如,生成的时候用:date_default_timezone_set("PRC");转换页面也必须用:date_default_timezone_set("PRC");
加上这句试试看看
最好在php.ini里修改timezone时间戳是从1970年1月1日开始的秒数,跟时区无关。
手册: http://www.php.net/manual/en/datetime.construct.php// Using a UNIX timestamp. Notice the result is in the UTC time zone.
$date = new DateTime('@946684800');
echo $date->format('Y-m-d H:i:sP') . "\n";
$dt = new DateTime('@1356969600');
echo $dt->getTimezone()->getName(),"\n";
echo $dt->format('Y-m-d H:i:s'), "\n";
echo date('Y-m-d H:i:s',1356969600),"\n";
date_default_timezone_set("Asia/Shanghai");
$dt = new DateTime('@1356969600');
echo $dt->getTimezone()->getName(),"\n";
echo $dt->format('Y-m-d H:i:s'), "\n";
echo date('Y-m-d H:i:s',1356969600),"\n\n";
date_default_timezone_set("Asia/Shanghai");
$dt = new DateTime('@1356969600');
echo $dt->getTimezone()->getName(),"\n";
echo $dt->format('Y-m-d H:i:s'), "\n";
echo date('Y-m-d H:i:s',1356969600),"\n";
$dt->setTimezone(new DateTimeZone('Asia/Shanghai'));
echo $dt->getTimezone()->getName(),"\n";
echo $dt->format('Y-m-d H:i:s'), "\n";
echo date('Y-m-d H:i:s',1356969600),"\n";
echo $dt->format('Y-m-d H:i:s'), "\n"; // 2012-12-31 16:00:00
date('Y-m-d H:i:s',1356969600),"\n"; // 2013-01-01 00:00:00
时区的设置,我在配置文件中配置好了,配置的是PRC