首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PHP坚持使用错误的时区

PHP坚持使用错误的时区
EN

Stack Overflow用户
提问于 2013-09-02 08:33:41
回答 2查看 3.7K关注 0票数 1

下面是一个脚本,在每个语句旁边的注释中包含每一行的输出,以演示我的问题

代码语言:javascript
复制
<?php
    echo date_default_timezone_get(); //Europe/Helsinki
    date_default_timezone_set('Africa/Cairo');
    $script_tz = date_default_timezone_get();
    if (strcmp($script_tz, ini_get('date.timezone'))){
        echo "\nScript timezone differs from ini-set timezone."; //True, this block is ran
    } else {
        echo "\nScript timezone and ini-set timezone match.";
    }
    echo "\n".date_default_timezone_get(); //Africa/Cairo
    echo "\n'".ini_get('date.timezone')."'"; //''
    echo "\n".date('Z'); //10800
    echo "\n".date("m/d/Y h:i:s A T",strtotime("-1 hour")); //I still have to do this to obtain the correct date !
?>

我现在在开罗,在那里我们已经三年没有DST了。服务器的时区设置正确,DST选项甚至无法启用或禁用DST。所以它天生就是残疾人。这里有一个屏幕截图来演示

在我的php.ini文件中

代码语言:javascript
复制
[Date]
; Defines the default timezone used by the date functions
;date.timezone =

我的php版本是

代码语言:javascript
复制
PHP 5.2.17 (cli) (built: Jan  6 2011 17:28:41)
Copyright (c) 1997-2010 The PHP Group
Zend Engine v2.2.0, Copyright (c) 1998-2010 Zend Technologies
  • 即使在我设置了默认时区之后,为什么还要操作date()输出(即减少一个小时)才能得到与服务器时间匹配的正确时间?
  • 为什么它坚持Europe/Helsinki是我的时区?
  • 这和Apache有关系吗?
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-09-02 08:52:47

DST信息存储在timezonedb中,这是一个默认情况下每个PHP安装都附带的数据库。因为您的PHP版本非常古老,而且您说您的国家的DST设置最近发生了变化,timezonedb已经过时了。它需要通过更新PHP本身或通过PECL更新数据库来保持更新。

http://php.net/manual/en/datetime.installation.phphttp://pecl.php.net/package/timezonedb如何安装PECL扩展

票数 2
EN

Stack Overflow用户

发布于 2013-09-02 08:38:33

你可以在你的约会函数上使用“e”。

时区

或者你可以用“i”来表示DST

源;http://php.net/manual/en/function.date.php

希望这解决了你的问题:)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18568791

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档