Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP忽略夏令时更改_Php_Time_Dst - Fatal编程技术网

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似乎忽略了夏令时的变化

$ 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

GNU
date
承认夏令时已经结束,但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
扩展。