【问题标题】:PHP date_default_timezone_set()PHP date_default_timezone_set()
【发布时间】:2012-12-17 14:56:08
【问题描述】:

在 php 中,有没有办法在 .htaccess 或任何地方设置默认时区,只要我不必在每个 php 页面都设置它。

如果我无权访问服务器,只能访问 PHP 文件。提前致谢

更新

我正在使用 apache (LAMP),并且无法访问 php.ini

【问题讨论】:

  • 一般设置在php.ini
  • 简短的回答是“是”,但更深思熟虑的答案可能是问问自己,您是否会有不同时区的客户,以及您是否想响应他们当地的时区。

标签: php timezone


【解决方案1】:

考虑到您使用 apache,因为您提到 .htaccess:

是的,只要它运行 mod_php 就可以在 .htaccess 中像这样:

php_value date.timezone "Europe/Berlin"

或者您可以像 Karl Laurentius Roos 建议的那样在 php.ini 中设置 date.timezone。这只有在您可以访问您的 php 配置时才有可能。请记住在更改 php.ini 后重新启动 PHP(CGI 模式)或您的网络服务器(mod_php)。

【讨论】:

【解决方案2】:

在您的 php.ini 中设置 date.timezone。支持的时区值:http://php.net/manual/en/timezones.php

【讨论】:

    【解决方案3】:

    我使用代码得到 500(内部服务器错误)

    php_value date.timezone "Europe/Berlin"

    然后我尝试了SetEnv TZ Australia/Melbourne,它就像一个魅力。

    【讨论】:

      【解决方案4】:

      如果您收到 500 错误,您可以尝试检查 PHP5 模块,它对我有用。

      <IfModule mod_php5.c>
      php_value date.timezone "Europe/Lisbon"
      </IfModule>
      

      【讨论】:

        【解决方案5】:

        在CPanel 服务器的.htaccess 文件中添加以下代码后。
        我曾经得到500(内部服务器错误)

        #Adjust default time zone 
        
        <IfModule mod_php5.c>
            php_value date.timezone "Asia/Kolkata"
        </IfModule>
        
        SetEnv TZ Asia/Kolkata  
        

        然后我导航到 cPanel MultiPHP INI 编辑器(主页 >> 软件 >> MultiPHP INI 编辑器)>> 编辑 PHP INI 设置

        转到路径 /homecws/Your_folder_name/public_html/php.ini 然后 在 php.ini 文件中包含
        date.timezone=Asia/Kolkata


        这是完整的 php.ini 文件

        ; magic_quotes_gpc = Off;
        ; register_globals = Off;
        ; default_charset   = UTF-8;
        ; memory_limit = 64M;
        ; max_execution_time = 36000;
        ; upload_max_filesize = 999M;
        ; safe_mode = Off;
        ; mysql.connect_timeout = 20;
        ; session.auto_start = Off;
        ; session.use_only_cookies = On;
        ; session.use_cookies = On;
        ; session.use_trans_sid = Off;
        ; session.cookie_httponly = On;
        ; session.gc_maxlifetime = 3600;
        ; allow_url_fopen = on;
        ; ;display_errors = 1;
        ; ;error_reporting = E_ALL;
        
        
        
        allow_url_fopen = On
        allow_url_include = On
        asp_tags = Off
        display_errors = On
        enable_dl = Off
        file_uploads = On
        max_execution_time = 300
        max_input_time = 600
        max_input_vars = 10000
        memory_limit = 512M
        session.gc_maxlifetime = 14400
        session.save_path = "/var/cpanel/php/sessions/ea-php56"
        upload_max_filesize = 2000M
        post_max_size = 8M
        zlib.output_compression = On
        date.timezone = Asia/Kolkata
        

        这解决了我的问题。

        【讨论】:

          【解决方案6】:

          如果服务器配置正确并且你想将你的进程时区设置为这个服务器值(如果没有设置),那么在 doc-root .htaccess 你可以设置一个 PHP 文件在任何其他 PHP 之前运行文件 - 在这个文件中,您可以定义几个配置、函数和类以用作“工具”,这些工具将在所有其他 PHP 文件中可用 - 如下所示:

          .htaccess

          php_value auto_prepend_file "path/of/file.php"
          


          路径/of/file.php

          date_default_timezone_set(ini_get('date.timezone'));
          

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2011-12-01
            • 1970-01-01
            • 1970-01-01
            • 2011-07-09
            相关资源
            最近更新 更多