by Jason Caldwell » November 16th, 2011, 10:37 am
Thanks for the follow-up.
Yes, that is correct. Actually, it's not really s2Member that ignores the time, that's just how WordPress works internally. Your /wp-settings.php file takes part in loading the WordPress core, and this file will ALWAYS force PHP to use the UTC timezone, regardless of what you configure in the Dashboard. That configuration in the Dashboard is mostly for the benefit of the site owner, so you can see UTC dates/times in your own timezone ( i.e. so publish dates make sense to you ).
When I first started working with WordPress, I questioned the way this was handled. However, as I have worked with WordPress over the years, I've seen why this decision was made. When you're dealing with a web site, you're dealing with visitors from all over the world. Setting a timezone to something that's US-based, or even to your own personal timezone, is really not helping all of your visitors, because each of them may be in a different location in the US, or even in a different part of the world.
Universal time is a good way to standardize times for a web site. It allows internal date/time calculations to remain accurate, regardless of the timezone on a particular server, or in a specific area of the world. In addition, it's easy to convert a UTC time into a localized display, based on a city or region.
The important thing to remember, is that your site may display times to you and your visitors based on the local timezone that you've configured. However, all dates/times within WordPress are stored as UTC. Any data/time comparisons and/or expirations within WordPress will always be based on UTC.