Manas Chaturvedi
Manas Chaturvedi

Reputation: 5540

Setting the Timezone for PHP in the php.ini file

I'm trying to change the default PHP timezone to Asia/Calcutta by accessing the /etc/php5/cli/php.ini file and changing

[Date]
; Defines the default timezone used by the date functions
; http://php.net/date.timezone
;date.timezone =

to

[Date]
; Defines the default timezone used by the date functions
; http://php.net/date.timezone
date.timezone = "Asia/Calcutta"

However, when I try to view current timezone under phpinfo(), the timezone follows the Europe/Berlin timezone.

I have tried stopping and restarting the Apache server, but that didn't seem to have changed the settings.

Is there something I'm missing in the process?

PS: I'm using PHP 5.6.8 currently under XAMPP.

Upvotes: 44

Views: 257534

Answers (12)

gabriel
gabriel

Reputation: 1

This error is very common. Many people think it is along these lines: Do the following. Search this line date.timezone: Europe/Berlin and change to your zone. Typically you will find it like this:

[Session]
define_syslog_variables=Off
[Date]
date.timezone=Europe/Berlin

[MySQL]
mysql.allow_local_infile=On
mysql.allow_persistent=On

Upvotes: 0

miller
miller

Reputation: 934

You are changing the wrong file. The file /etc/php5/cli/php.ini is used by cli - command line interface. Don't forget to restart your web-server after you update the right one: sudo service apache2 restart or sudo service php5-fpm restart

File locations for different OS:

OS                               ->  Location

windows(With Xampp Installation) -> /xampp/php/php.in 

Mac OSX                          -> /private/etc/php.ini

Linux                            -> /etc/php.ini

                                 -> /usr/bin/php5/bin/php.ini

                                 -> /etc/php/php.ini

                                 -> /etc/php5/apache2/php.ini

Upvotes: 11

Parth Parmar
Parth Parmar

Reputation: 131

Nothing had worked for me, I'm using FPM.

Found a file called www.conf inside /etc/php/8.2/fpm/pool.d , edited php_admin_value[date.timezone] value, restarted FPM with sudo service php8.2-fpm and it worked.

I'm using Vultr, hope this answer will help someone in the future.

Upvotes: 1

Hoàng Vũ Tgtt
Hoàng Vũ Tgtt

Reputation: 2032

in my case, Centos 8, DirectAdmin, Openlitespeed, php 7 (lsphp server must run with Openlitespeed)

  1. Go to DirectAdmin (with admin/root password) -> CustomBuild - > SETTINGS - > Options -> PHP Settings -> php_timezone -> input your time zone and save Time zoze is list here: https://www.php.net/manual/en/timezones.php

  2. return CustomBuild -Build -> select PHP, and click build!

  3. Waite 10 minute for amazing...

Upvotes: 0

Lions
Lions

Reputation: 21

For me, running systemctl restart php-fpm after editing the /etc/php-ini file solved the problem.

Upvotes: 2

Brandon Cook
Brandon Cook

Reputation: 21

  • phpinfo() was returning Loaded Configuration File => /etc/php/5.6/cli/php.ini.
  • My date.timezone changes were not taking effect after updating the above and restarting php-fpm (sudo systemctl reload php5.6-fpm.service).
  • phpinfo() also has an Additional .ini files parsed section, which contained /etc/php/5.6/cli/conf.d/timezone.ini.
  • After updating the timezone.ini file (date.timezone = "America/New_York") and restarting php-fpm (as above), phpinfo() correctly returned date.timezone => America/New_York => America/New_York.

Upvotes: 2

namal
namal

Reputation: 1274

If you are using Laravel, you should change the Laravel timezone configuration.

My case Laravel 6. Edit /config/app.php file and change this line

'timezone' => 'UTC',

to

'timezone' => env('APP_TIMEZONE', 'UTC'),

then edit .env file. add your timezone (timezone list)

APP_TIMEZONE='America/New_York'

clear configurations

php artisan config:clear

Upvotes: 1

Ganesh Patel
Ganesh Patel

Reputation: 67

Check configuration in your system.

In my case, it was "Ubuntu"

sudo cat /etc/timezone Asia/Kolkata

Upvotes: 0

Shane Skidmore
Shane Skidmore

Reputation: 31

I had the same problem and discovered that there are two date.timezone statements in php.ini in my version of XAMPP out of the box. The first statement one is commented out, but the second one is set to Europe/Berlin. So you if you edit your php.ini and search for timezone and logically uncomment the first statement with your time zone, the second statement overrides that back to Europe/Berlin.

Upvotes: 3

Manas Chaturvedi
Manas Chaturvedi

Reputation: 5540

I tried all the other possible solutions posted, but none of them helped. This is what helped me save my timezone settings:

1) Go to your phpinfo() page and search for Loaded Configuration File and open the php.ini file mentioned under that section.

2) Change the default timezone settings by adding your new timezone by modifying this line: date.timezone=Asia/Kolkata.

3) Save the php.ini file and stop the Apache server.

4) Restart the Apache server. The timezone settings should now be modified.

Upvotes: 62

Patrick
Patrick

Reputation: 213

  1. If you 're serious about web developping get a VM going(Virtual Box + Vagrant).
  2. With XAMPP be careful. Sometimes there's more than 1 php.ini file and you might be editing the wrong one. To edit the real one, access it from the XAMPP control panel.
  3. You can use the a function in your code: date_default_timezone_set();

Upvotes: 0

Daniel Krom
Daniel Krom

Reputation: 10058

You can change it in the code without touching the ini file, at the beginning of your code add:

date_default_timezone_set('Asia/Calcutta')

Upvotes: 15

Related Questions