ОК,
У меня проблема. Я создаю сайт, который в конечном итоге будет содержать большое количество записей данных о клиентах. Поскольку клиенты могут экспортировать и импортировать свои данные, я должен иметь возможность поддерживать часовые пояса на основе сеансов на сайте и на сервере.
Сейчас мой сервер настроен на GMT. Когда я запускаю команду date в оболочке, я вижу, что это правильно на момент публикации.
Fri Mar 18 20:04:32 GMT 2011
Затем, когда я делаю hwclock - шоу дает мне, снова это было правильно.
Fri 18 Mar 2011 08:06:22 PM GMT
Теперь, когда я говорю php, чтобы изменить его часовой пояс на GMT-4 (так как это мой часовой пояс с учетом летнего времени)
date_default_timezone_set('Etc/GMT-4');
echo date("m/d/Y g:i:s A T");
Я получаю 19/03/2011 00:11:35 утра по Гринвичу-5. Совершенно неправильно, вместо того, чтобы забрать 5 часов, добавлено 5 часов.
Итак, я сделал это:
date_default_timezone_set('Etc/GMT+4');
echo date("m/d/Y g:i:s A T");
Я получил 18.03.2011 16:14:56 GMT + 4. Какое время правильное. MySQL делает то же самое. Похоже, что оба хотят инвертировать временные корректировки. Я что-то упустил в настройках?