关于php Datetime 时区转换因为timezone_version(时区版本)问题造成的时区转换问题
起因:
有客户反馈,日程行程 显示巴西利亚 的时间显示有问题.
测试后,发现.
同样是utc-3的2个时区,其中圣保罗是有问题(途中圣保罗的时间有问题变成了utc-2),
后面经过后续测试发现这个和php的版本有关,php7.4的版本时间版本是2个地区是一样的,但是7.2的版本是上图这样的(时间偏移量,2个时区不一样).
后续又去看了官方关于timezone_version_get的说明,
官方给出了建议,可以通过升级php版本和安装timezonedb pecl最新的包来解决这个问题.
后续,用phpize安装了最新的timezonedb ,解决了问题
#下载timezonedb,下载地址:http://pecl.php.net/get/timezonedb
wget http://pecl.php.net/get/timezonedb
tar -xf timezonedb
cd timezonedb-2024.2
/usr/local/php/bin/phpize
./configure --with-php-config=/usr/local/php/bin/php-config
make
make install
vi /usr/local/php/etc/php.ini
#添加:extension=timezonedb.so
安装后,再次测试,发现时区偏移量正常了.时区版本库也更新到了2024.2的版本