$public->get("vipDeadline") 的真实值是{"__type":"Date","iso":"2016-10-03T16:00:00.000Z"}
使用以下代码打印出对应的内容 结果为:2016-10-03 16:00:00

date_default_timezone_set('PRC');
$public->get("vipDeadline")->format('Y-m-d H:i:s');

北京时间 2017-02-06 17:26:33 时,使用以下代码打印出当前时间,值为
web1 17:26:33 当前日期:2017-02-06 17:26:33

date_default_timezone_set('PRC');
$nowDate = new DateTime();
$nowDate->format('Y-m-d H:i:s')

数据库直接读取的数据无法准确获取北京时区下对应的信息?

你的时区 PRC 是什么时区,不记得有这个时区呀。如果是北京市区,你可以使用:

date_default_timezone_set("Asia/Shanghai");

date_default_timezone_set('PRC') 这个就是设置中国时区。不然我问题里打印当前时间那个也不会是按照中国时区打印时间了。我先试试你这个。

改成了date_default_timezone_set("Asia/Shanghai"); 还是一样的结果。
看一下什么问题吧。

是这样的,我们的 sdk 返回的时间都是 utc 的时间对象 DateTime ,而对这个对象 ->format() 是会按照对象的时区(也就是 utc)来格式化。

如果你需要北京时间,你可以转换一下时区:

$public->get("vipDeadline")->setTimezone(new DateTimezone("Asia/Shanghai"))->format('Y-m-d H:i:s');