7

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

前提是我无权访问服务器,只有 PHP 文件。提前致谢

更新

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

4

6 回答 6

11

考虑到您提到 .htaccess 的事实是使用 apache:

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

php_value date.timezone "Europe/Berlin"

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

于 2012-12-17T14:59:57.270 回答
3

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

于 2012-12-17T14:58:02.243 回答
2

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

php_value date.timezone "Europe/Berlin".

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

于 2014-04-08T20:32:50.943 回答
1

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

<IfModule mod_php5.c>
php_value date.timezone "Europe/Lisbon"
</IfModule>
于 2015-02-13T02:56:58.740 回答
0

在 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然后包含
date.timezone=Asia/Kolkataphp.ini文件中


这是完整的 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

这解决了我的问题并为我工作。

于 2018-03-22T08:06:41.333 回答
0

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

.htaccess

php_value auto_prepend_file "path/of/file.php"


路径/of/file.php

date_default_timezone_set(ini_get('date.timezone'));
于 2018-06-26T19:55:48.787 回答