之前在 php -a 进入交互脚本输出当前日期时出现时间不准确的问题,在服务器上测试也是一样。

这是因为没有设置时区。

PHP 默认时区设置函数为 date_default_timezone_set(),版本支持:(PHP 5 >= 5.1.0, PHP 7)。

时区参数一般用 大洲/城市 表示时区,有三个表示东八区中国的参数 Asia/Hong_KongAsia/Shanghai Asia/Taipei

date_default_timezone_set('Asia/Hong_Kong');
date_default_timezone_set('Asia/Shanghai');
date_default_timezone_set('Asia/Taipei');

还有一种直接跟数字挂钩的写法(格林威治时间):

date_default_timezone_set('Etc/GMT-8');

推荐拓展阅读:PHP中关于时间(戳)、时区、本地时间、UTC时间等的梳理