这个问题出现在俄罗斯开始生活在GMT + 4之后。
我的主机服务器时间是欧洲/莫斯科。
当我从PHP日期打印('d / m / Y H:i')时,它返回正确的莫斯科时间。
但是当我在日期('O')的帮助下试图在几小时内与格林威治时间(格林威治标准时间)区分时,我得到+0300(我认为应该是+0400。请看这里:http://localtimes.info/Europe/Russia/Moscow/Moscow/ - 当前时区偏移:+04:00小时)。
问题:为什么?是我做错了,还是主持人的问题?
答案 0 :(得分:1)
Moscow Time的正确UTC偏移量为UTC +0400
:
2011年,俄罗斯政府宣布全年将全天观察夏令时,从而有效取代标准时间 - 政府宣称这一行动源于健康问题,归因于每年之间来回转换标准时间和夏令时。[1] 2011年3月27日,莫斯科人将他们的时钟设定为最后一次,有效地永久观察MSD或UTC + 4。
我认为这与timezone.db的底层库或服务器系统本身有关。试试这个测试脚本(Demo):
date_default_timezone_set('Europe/Moscow');
echo date('d/m/Y H:i O'), "\n";
echo 'timezone default: ', date_default_timezone_get(), "\n";
echo 'timezone version: ', timezone_version_get();
示例输出:
05/11/2011 22:39 +0400
timezone default: Europe/Moscow
timezone version: 0.system
如果服务器上显示错误的值,请与管理员联系和/或更新系统。
编辑:此测试脚本使用PHP 5.3函数:timezone_version_get
。安装了pecl timezonedb的输出是:
05/11/2011 23:17 +0400
timezone default: Europe/Moscow
timezone version: 2011.14