PHP DateTimeZone 无效 即 WordPress发布文章变定时

  问题最开始,是piwik统计时间有问题,但也是无所谓的事情。不过最近几天发文章发现时间不对,立即发布变成了定时发布,而且很明显就是差了8小时。然后昨天下班就默默对wordpress代码一行一行找,找着找着就发现了get_gmt_from_date这个函数,然后问题就来了。

//code 1
var_dump(get_option( 'timezone_string' ));
var_dump(get_gmt_from_date("2016-04-06 00:03:15"));
//server5
string(13) "Asia/Shanghai"
string(19) "2016-04-06 00:03:15"

//server2
string(13) "Asia/Shanghai"
string(19) "2016-04-05 16:03:15"

//local
string 'Asia/Hong_Kong' (length=14)
string '2016-04-05 16:03:15' (length=19)
//code 2
$datetime = date_create( "2016-04-06 00:03:15", new DateTimeZone( "Asia/Shanghai" ) );
$datetime->setTimezone( new DateTimeZone( 'UTC' ) );
echo $string_gmt = $datetime->format( "Y-m-d H:i:s" );
//server5
2016-04-06 00:03:15

//server2
2016-04-05 16:03:15

//local
2016-04-05 16:03:15

//run yum update .....
update php-common to 0:7.0.5-1.el7.remi then

//code1 on server5
string(13) "Asia/Shanghai"
string(19) "2016-04-05 16:03:15"

//code2 on server5
2016-04-05 16:03:15

  然后,所有问题全部解决,就算一个坑,浪费了我一天的大好青春。

5条评论在“PHP DateTimeZone 无效 即 WordPress发布文章变定时”

写下你最简单的想法