Я пытаюсь устранить неполадки и решить эту проблему: сервер, на котором я работаю (php 5.2.9 в Linux), имеет правильное местное время (Америка / Buenos_Aires):
user@server [/home/site/public_html]$ date
Mon Nov 1 17:11:14 ART 2010
php.ini
установлен с date.timezone = "America/Buenos_Aires"
Я также попытался установить часовой пояс непосредственно в скрипте с помощью
<?php
ini_set('display_errors', true);
error_reporting(E_ALL|E_STRICT|E_NOTICE);
//date_default_timezone_set("America/Buenos_Aires");
//echo date_default_timezone_get(), "<br>";
echo "ini: ", ini_get('date.timezone'), "<br>";
$now = date("H:i:s T I");
$nowdate = date("Y-m-d");
echo $nowdate." ".$now;
?>
, но безрезультатно, результат будет
ini: America/Buenos_Aires
2010-11-01 18:11:14 ARST 1
, когда это должнопрочитайте 17:11
(это на один час вперед).Все, что я нашел здесь и в Интернете, указывало на
- date_default_timezone_set (который я пробовал)
- установка date.timezone в php.ini (который установлен)
- путает серверное время с клиентским временем (а я нет).
Есть идеи?
РЕДАКТИРОВАТЬ: Как и предполагалось, я проверил и какВы можете видеть в коде, PHP думает, что он должен применять DST, и Аргентина решила не применять его в этом году.Любой вариант кроме ожидания патча?
РЕДАКТИРОВАТЬ 2: Я попытался сбросить переход часовых поясов, как предложено.Я получил следующее:
The timezone America/Buenos_Aires switches to standard time on 20 Mar 2011 @ 02:00.
The new GMT offset will be: -10800 (ART)