Default timezone hardcoded as UTC?

While debugging a plugin I was writing, I noticed that on line 36 of wp-settings.php, the default timezone is hardcoded to UTC with a call to the date_default_set_timezone() function. This means any call to the PHP date/time functions will work with UTC as the local time.

Can someone please explain to me why this is a sane design choice by the WordPress team? I understand if they want to store and manipulate times internally as UTC, but wouldn’t a better alternative be to explicitly switch to a “UTC mode” when they need to do such logic?

Assuming you know to set your server’s php.ini’s timezone setting, this hardcoded UTC basically invalidates php.net’s description of the date() function:

date — Format a local time/date

Which strikes me as a bad thing, no?

2 s
2

Somehow I missed the current_time function, which gives a good description of the situation and how to properly deal with the need to get the current blog-local time.

http://codex.wordpress.org/Function_Reference/current_time

Though the purist in me still hates how WP makes the time zone setting in php.ini obsolete without giving you a choice. *grumble grumble*

Leave a Comment