I set the right server time with the help of this tutorial: https://www.digitalocean.com/community/tutorials/how-to-set-up-time-synchronization-on-ubuntu-16-04
When I type “date” in the console, the correct time is now shown. But the PHP date(‘H:i’) command still shows 2 hours earlier. I have reset Apache2.
How can this happen and what can I do about it?
This textbox defaults to using Markdown to format your answer.
You can type !ref in this text area to quickly search our full set of tutorials, documentation & marketplace offerings and insert the link!
Thanks again for your help! This is interesting. timedetectl was already set to Europe/Amsterdam, but this is the result:
Local time: Thu 2020-07-09 09:15:26 CEST
Universal time: Thu 2020-07-09 07:15:26 UTC
RTC time: Thu 2020-07-09 07:15:27
Time zone: Europe/Amsterdam (CEST, +0200)
System clock synchronized: yes
systemd-timesyncd.service active: yes
RTC in local TZ: no
So the local time is correct, but php seems to use the Universal or RTC time in the time() function. Now I found the PHP localtime() function: https://www.w3schools.com/php/func_date_localtime.asp
But this code:
echo 'time: ' . date('H:i');
echo "<br>";
print_r(localtime(time(),true));
even gives this result:
time: 07:35
Array ( [tm_sec] => 15 [tm_min] => 35 [tm_hour] => 7 [tm_mday] => 9 [tm_mon] => 6 [tm_year] => 120 [tm_wday] => 4 [tm_yday] => 190 [tm_isdst] => 0 )
So the localtime() function doesn’t seem to do anything. (changing back the timezone in php.ini from Detroid to Amsterdam doesn’t have any effect on the output above (didn’t forget to restart Apache)).
Hi @Roelandvo,
You’ll need to update the default timezone of your PHP in your php.ini. I’ll recommend setting it like so :
date.timezone="Europe/London"
Now, the default is Europe/London however you can set it to any timezone you wish.
Please make sure you’ve added it to your PHP.ini as this is related to your PHP rather than the server itself.
Regards, KFSys
Hi @KFSys,
Thanks for your help. It doesn’t work until now; I changed the php.ini to:
[Date]
; Defines the default timezone used by the date functions
; http://php.net/date.timezone
date.timezone = Europe/Amsterdam
I also checked via phpinfo() to be sure that this is the right ini file. Then restarted the server with
sudo /etc/init.d/apache2 restart
But the time is still 2 hours behind.
Get paid to write technical tutorials and select a tech-focused charity to receive a matching donation.
Full documentation for every DigitalOcean product.
The Wave has everything you need to know about building a business, from raising funding to marketing your product.
Stay up to date by signing up for DigitalOcean’s Infrastructure as a Newsletter.
New accounts only. By submitting your email you agree to our Privacy Policy
Scale up as you grow — whether you're running one virtual machine or ten thousand.
Sign up and get $200 in credit for your first 60 days with DigitalOcean.*
*This promotional offer applies to new accounts only.