PHP忽略夏令时更改
PHP似乎忽略了夏令时的变化PHP忽略夏令时更改,php,time,dst,Php,Time,Dst,PHP似乎忽略了夏令时的变化 $ php -r 'var_dump(date_default_timezone_set("America/Chicago"));\ ini_set("date.default_latitude",37.373548);\ ini_set("date.default_longitude",-92.473743);\ printf("%s\n",date("c T I e&quo
$ php -r 'var_dump(date_default_timezone_set("America/Chicago"));\
ini_set("date.default_latitude",37.373548);\
ini_set("date.default_longitude",-92.473743);\
printf("%s\n",date("c T I e",1604596718));'
bool(true)
2020-11-05T12:18:38-05:00 CDT 1 America/Chicago
$ echo TZ="$TZ";date --date='@1604596718' '+%FT%T%z %Z';
TZ=America/Chicago
2020-11-05T11:18:38-0600 CST
$ uname -a
CYGWIN_NT-10.0 XYZ 3.1.7(0.340/5/3) 2020-08-22 17:48 x86_64 Cygwin
$ which php
/usr/bin/php
$ php -v
PHP 7.3.7 (cli) (built: Jul 21 2020 18:15:38) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.3.7, Copyright (c) 1998-2018 Zend Technologies
with Zend OPcache v7.3.7, Copyright (c) 1999-2018, by Zend Technologies
Cygwin的PHP包版本=7.3.7-2
GNUdate
承认夏令时已经结束,但PHP似乎无法正确解释tz数据库
我不知道PHP是否使用了下面的文件,也不知道如何解释它,但为了防止它有所帮助,我将包含它
$ cat /usr/share/zoneinfo/tzdata.zi
[...]
Z America/Chicago -5:50:36 - LMT 1883 N 18 12:9:24
-6 u C%sT 1920
-6 Ch C%sT 1936 Mar 1 2
-5 - EST 1936 N 15 2
-6 Ch C%sT 1942
-6 u C%sT 1946
-6 Ch C%sT 1967
-6 u C%sT
Z [...]
[...]
日期模块配置的
phpinfo()
显示什么?应该看到类似于timelib版本:2018.03
,时区数据库:内部
,等等这是否回答了您的问题@威尔布。phpinfo()显示:日期/时间支持=>已启用,timelib版本=>2018.01RC3,“奥尔森”时区数据库版本=>0.system,时区数据库=>内部,默认时区=>UTC@hasanfirdaus79我似乎没有安装时区B扩展,伊利诺伊州(包含“美国/芝加哥”的州)最迟自1967年以前以来未更改夏令时的规则。请发布您的php.ini配置设置timelib
是并且是timezonedb
的转换版本,您的包括,可能有特殊问题。除了将PHP更新为最新的安全版本外,您还可以尝试从PECL安装timezonedb
扩展。