Home » Php » timezone – PHP date_default_timezone_set()

timezone – PHP date_default_timezone_set()

Posted by: admin July 12, 2020 Leave a comment


In php, is there a way to set default timezone in .htaccess or wherever, as long as i don have to set it at every php page.

provided i don have access to server, only PHP files. Thanks in advance


i am using apache (LAMP), and don’t have access to php.ini

How to&Answers:

Considering you use apache from the fact you mention .htaccess:

Yes, as long as it runs mod_php it is possible in .htaccess like so:

php_value date.timezone "Europe/Berlin"

Or you could set date.timezone in php.ini like Karl Laurentius Roos suggested. This would only be possible if you have access to your php config through. Remember to restart PHP (CGI mode) or your webserver (mod_php) after altering php.ini.


Set date.timezone in your php.ini. Supported timezone values: http://php.net/manual/en/timezones.php


I was getting 500 (Internal server Error) using the code

php_value date.timezone "Europe/Berlin".

Then I tried, SetEnv TZ Australia/Melbourne and it worked like a charm.


If you get a 500 error you might try checking for the PHP5 module, works for me.

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


After adding below code in .htaccess file from CPanel Server.
I used to get 500 (Internal server Error)

#Adjust default time zone 

<IfModule mod_php5.c>
    php_value date.timezone "Asia/Kolkata"

SetEnv TZ Asia/Kolkata  

Then I navigated to the cPanel MultiPHP INI Editor (Home >> Software >> MultiPHP INI Editor) >> Edit PHP INI settings
Go to the Path /homecws/Your_folder_name/public_html/php.ini then
date.timezone=Asia/Kolkata in php.ini file

Here is the complete php.ini file

; 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

This solved and worked for mine.


If the server is properly configured and you want to set your process time-zone to this server value (if not set), then in the doc-root .htaccess you can set a PHP file to run before any other PHP file -and in this file you can define a couple of configurations, functions and classes to use as “tools” which will be available in all the other PHP files – like this:


php_value auto_prepend_file "path/of/file.php"