How to get local timezone in PHP?
Solution 1
Use a timezone from http://php.net/manual/en/timezones.php
So, for CST use:
<?php
date_default_timezone_set("America/Chicago");
If you only have the timezone abbreviation and not the timezone id then use:
<?php
date_default_timezone_set(timezone_name_from_abbr("CST"));
Solution 2
Although the system and PHP should be on the same timezone, read the docs for date_default_timezone_set()
to set the timezone manually.
Note that CST is not a valid timezone setting. Find a valid timezone for your location.
Steve
Updated on July 23, 2022Comments
-
Steve almost 2 years
I'm using the
date("D, m/d/Y h:i:s A T")
function call to get current date time but returned time is different to the time I get when I make date in linux bash command (local time is in CST and php date function returns time in UTC). I've tried using$timezone = @system("date +%Z",$retval);
to get timezone in an attempt to set local timezone usingdate_default_timezone_set()
function. But CST seems not a valid timezone_identifier.In short, I just need to get the same date and time as local datetime.
-
Jason McCreary over 12 years+1 for being first. Note that the user may not be Chicago. Although indeed CT, it's best to use your specific locale.
-
Steve over 12 yearsthe issue is I need it done programmatically so I can't go and copy the exact valid timezone_identifier each time I need it. The only value I have is CST or UTC and so on...
-
Christopher Manning over 12 years@StephaneKouakou I've added sample code for when you only have the timezone abbreviation
-
Steve over 12 yearsI think I've found a better function: timezone_name_from_abbr()
-
Praesagus about 11 yearsif you want to grab the default from *nix server, timezone_name_from_abbr(exec('date +%Z')) saves you from having a static entry
-
rvighne over 10 yearsIf this turned out to be the correct answer, please mark it as correct.