If you notice the incorrect time in your PHP scripts, the likely culprit is that the hosting server is in a different timezone.
For example, when you’re an InMotion PHP web hosting customer, you can select from data centers in Washington, D.C., or California, which means the server’s timezone will be either Eastern Standard Time (EST) or Pacific Standard Time (PST).
If you want to change that, it’s a quick fix. Simply insert a line of code into your php.ini file and the location you set in the code will determine the time to display in your PHP scripts. Keep reading to learn how.
Set the Timezone in PHP
- Open your php.ini file with the File Manager in cPanel .
- Add the following line of code to top of your php.ini file:
date.timezone = "US/Central"
.- Replace
US/Central
with the timezone from here that corresponds to the time you want to display.- Once you have entered the desired timezone, click Save Changes to save the file.
- Now, you can check your phpinfo.php page to verify the change took place.
Congratulations! You are now able to set the timezone in PHP. If you wish to see more guides with tips and information for your website issues, please see our InMotion Hosting Support Center!
Sell hosting using your own brand with a powerful Reseller Hosting plan, now with more resources and faster storage using NVMe SSDs at no extra cost.Post navigation
38 thoughts on “How to Set the Timezone in PHP”
Was this article helpful? Join the conversation!
- Replace
Painful lesson for those application folks who three weeks ago say that they went though their testing (regressive?) and they come to you and tell you things are on fire. I guess as person that upgraded it, I should have checked it myself.
Dear Members
I have changed the timezone ini.php file and its changed there successfully even i tested with phpinfo.php it showing there same as per my chnages. but the time on my website still same as before (wrong time). So, please advice what to do?
Thanks
Shoev
We are happy to help you troubleshoot further but will need some additional information. How/where is the time displaying on your website? Can you provide a link to the site for us to see the time?
Thank you,
John-Paul
Hi, can you teach me how to configure VPS? i’m having trouble because i dont have php.ini file in my public html
I recomend contacting Live Support so they can copy the server’s default php.ini file to your account. You can then modify the php.ini as described above.
Thank you,
John-Paul
Great tutorial. This tutorial was really useful to set timezone.
Thanks.
Nice tutorial.This tutorial was really helpful to me on set timezone.
Thanks.
I set timezone as asia/kolkata in my server but it showing 4 minutes ahead than actual timezone time,plz help mee.
Hello Radha,
If you made the change in the php.ini file then it’s possible that you have another PHP.INI file where the change is not taking precedent. Make sure that the php.ini file with the time zone setting is recursive. Here’s an article on how to do this: How to make my php.ini file recursive. If the problem continues, then please let us know.
If you have any further questions or comments, please let us know.
Regards,
Arnel C.
What you are specifically looking for in this case for West Africa, and would be the same no matter where in the world you are is to find out first what your UTC offset is and then use one in the list that matches that. For example, I live in the Pacific Northwest in the USA and our offset is -7 (that is minus seven) and at present we are in Daylight Savings time (aka PDT). When not in DST time of year we are -8 PST.
So we are minus seven hours from GMT aka UTC which is at 0 and sometimes expressed +0.
Short answer is find your offset and use the one that matches. There are many and I think some with the same UTC offset.
There is no php.ini in any accounts in my reseller account – all sites that check date get the php warning about timezone. The .htaccess fix does not work. Do I need to request a php.ini file created every single time I create a site? This seems excessive. It seems leaving warnings on as a default is a problem.
On my VPS, phpinfo() says user_ini.filename .user.ini
So instead of php.ini, I had to create .user.ini in the cPanel’s /public_html/ directory for the date.timezone setting to take effect on my site.
…which also requires your cPanel File Manager Settings be set to Show Hidden Files (dotfiles).
I found this helpful.
When no default is set, it goes to UTC. This is what I found with one server.
For another it was set to Germany/Berlin !
I updated php.ini, but phpinfo() did not update even when pressing F5, until I recycled apache. Then I went into the app and the times were correctly displayed.
how can i change the time zone to west africa as in nigeria,
i did not see it in the timezone list
PHP does not have a timezone specification for Nigeria specifically, but it has one for Lagos.
I have set date.timezone = “America/New_York” in my php.ini and set it recursive in my .htaccess.. Still getting Los Angeles on my phpinfo page.
Hello Larry,
Thank you for contacting us. Did you add the setting to the top of your php.ini file?
Can you provide a link to your site for us to test?
Thank you,
John-Paul
THank you,, it worked for me..
GBU
BR From Indonesia
GREAT! Now it works with my timezone! Thank you very much!
Best Regards from Brazil! 😀
I would like to know how to go back automactically to home page 3 seconds after submitting the data. I’d tried with header but it goes back and forth. Please guide me through that. Thanks a lot for your time.
Hello Andy,
Unfortunately, providing programming support is beyond the scope of our support. Please consult with a developer or forum that helps with programming a solution to meet your needs.
Regards,
Arnel C.
I just moved my accounts to IM and am testing. I went to a Members Only login page and got two errors re: php that I am not getting on the old server. I checked the version of php and set it to the same 5.3 that it was using before.
Warning: session_start() [function.session-start]: It is not safe to rely on the system’s timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected ‘America/Los_Angeles’ for ‘PDT/-7.0/DST’ instead in /home/uscold/public_html/mo/membersOnly.php on line 6
Warning: session_start() [function.session-start]: open(/tmp/sess_e079720753ff740ed0a801cea301a3d3, O_RDWR) failed: Permission denied (13) in /home/uscold/public_html/mo/membersOnly.php on line 6
I tried adding the line in php.ini for the timezone as instructed on this page but am still getting these errors. Can you point me to a solution? Thanks. (I’m not knowledgeable in php beyond very simple basics)
Hello hermit,
You will also want to make sure your php.ini file is recursive. That should solve the issue for you.
Kindest Regards,
Scott M
If the times that the data is logged in your DB are according to GMT (example being) then you can do a fairly simple convert according to what UTC offset by adding or subtracting an hour (eg. 3600 seconds per hour if logged using a Unix Timestamp).
As for further entries in the DB, I would recommend to use the same method as has been used to this point unless an upgrade is in order. In which case, change relevant data points to match as you desire and and for all previous data, use a conversion script.
Some simple logic can be used for this test to create a converter.
if($db_time < $new_stamp) {
// add the lines as needed depending of the UTC offset
}
I did tried it and it had changed in my php.ini file but whenever I submit the data to my database the time still wasn’t changed in my database. thanks a lot for your time.
If you are using any form of PHP templating, this should still work if placed in the top of your template page (or in the top of each page that needs this): ini_set(“date.timezone”, “America/Los_Angeles”);
This will make sure it stays as your script needs it and it is just a change for your script(s) only.
I would like to know how to change time zone in shared sever please. Thanks
Hello Andy,
Thank you for contacting us. The above guide explains just that. Were you able to follow the above guide?
Did you have trouble with a certain step?
Thank you,
John-Paul
thank your help.
I use this key in opencart change timezone is succussed.
This would be another way to use / set this >
<?php
if(ini_get("date.timezone")!=="America/Los_Angeles") {
if(ini_set("date.timezone", "America/Los_Angeles")===FALSE) {
echo "Unable to set timezone."; // You could send to another var for display elsewhere too.
}
}
?>
That is if you where using a PHP templating method by which you used the same template page across your entire site. This would go right near the top to be sure to check the setting and change it to the timezone desired.
This page may be of help to anyone in the Americas too > https://php.net/manual/en/timezones.america.php
it contains all needed information
How to find php.ini file in the File Manager?? I couldn’t find it
Hello aravindhan.m,
Thank you for your suggestion. I will review this article and determine if a video would help people set the timezone for PHP in the php.ini.
If you have any further questions, feel free to post them below.
Thank you,
-John-Paul
Hello Silvi,
Thank you for your question. Since I could not locate your account with us, here is some background information on the php.ini file. This is from our guide on How to update your local php settings.
Only users running on a server with PHP loaded as a “CGI module” will have a php.ini file. The php.ini file by default will be located at public_html/php.ini. If you do not see a file named php.ini in your public_html, please contact our Support Department and request that we create one for you.
If you have any further questions, feel free to post them below.
Thank you,
-John-Paul
Be sure after you have done this to stop apache and restart apache… Well shut down the web server and restart it again so php will pick up the timezone change.
Hello Anthony,
Thank you for your comment. But, it is not necessary to restart the server when changing the timezone.
You will also not have the ability to do so in a shared servers setting, since it will bring everyone’s site down.
If you have any further questions, feel free to post them below.
Thank you,
-John-Paul
Uploading videos would help us set the timezone for PHP in the php.ini