Timezones and Embargos

Ver 3.3.1 here. Haven’t revisited the config.php in a while but came across an odd circumstance sending a campaign yesterday (first in a while). Without going into too much tragedy, I queued up the campaign as usual and waited for my hourly cron to run (php-cgi) but zippo. Turns out the embargo time was set 3 hours in advance of when I queued the campaign. Since my server is three hours behind my current timezone, it wasn’t much of a mystery.

I noticed in the config_extended.php, there’s a option to define a constant with a timezone. I find it’s best practice with PHP to set system time to server time and only when I’m displaying timezones for readability. So I opted to add:
date_default_timezone_set('America/Los_Angeles')
to config.php and just deal with server time.

If I define the constant SYSTEM_TIMEZONE as ‘America/New_York’, I see that new campaigns adjust the embargo time to the previously passed hour in the constant timezone and displays a text note that ‘phpList operates in the time zone “America/New_York”’

Old campaigns in detail view will still show server time for date data so I’m not sure what’s actually going on behind the scenes with the PHPList constant. If the constant is somehow altering MYSQL queries, I’d be extremely hesitant to use it.

So until I better understand how the constant is used, I suggest using the traditional php default timezone set and not define the constant.