Проблема с настройкой часового пояса

Тема в разделе "PHP", создана пользователем SAKH, 12 июл 2008.

Статус темы:
Закрыта.
Модераторы: latteo
  1. SAKH

    SAKH Постоялец

    Регистр.:
    15 янв 2008
    Сообщения:
    59
    Симпатии:
    11
    Здравствуйте уважаемые форумчане!
    Да простят меня модераторы... искал...читал..и не только на этом форуме пытался узнать..Может это и как 2х2, но ведь этот раздел для новичков?

    Я использую InstantCMS. Хост РБК, Версия PHP 5.x (есть там еще и 4.3.9 и 4.4. -сам выбираешь).
    По умолчанию таймзона стоит и время показывает Московское, а мне надо GMT + 10 Владивосток (оно с Сахалином одинаковое). В InstantCMS в файле index.php есть строка: setlocale(LC_ALL, 'ru'); Спросил у разработчика, ответили, что именно в этой строке надо менять, но что и как не сказали....
    Пробовал ее заменить на date_default_timezone_set('Asia/Vladivostok'); поставил и вышла ошибка Fatal error: Call to undefined function: date_default_timezone_set() in /www/сайт/www/htdocs/index.php on line 11.

    Писал хостеру, ответили, что Вы можете с помощью файла .htaccess изменить настройки php (используйте,
    date_default_timezone_set(), http://ru2.php.net/manual/ru/timezones.php). Пытался в .htaccess вписываьь, но тоже ошибки выдаются...

    Пробовал
    putenv("TZ=Asia/Vladivostok";
    В .htaccess уже пробовал
    date_default_timezone_set('Asia/Vladivostok';
    php_value date.timezone "Asia/Vladivostok"
    SetEnv TZ Asia/Vladivostok
    Ничего не меняется. Как создавались сообщения на форуме по Московскому, так и .. Московское.

    Помогите пожалуйста?! Что конкретно надо изменить и как, чтобы сменить часовой пояс на Владивосток? :bc:
     
  2. System777

    System777 Создатель

    Регистр.:
    20 апр 2008
    Сообщения:
    30
    Симпатии:
    13
    Возможно стоит проверить точно версию...

    Ну скорее всего причина именно в ВЕРСИИ php. Так бывает - хостинг-панель показывает одно, а реально используется другая версия.

    Функция date_default_timezone_set обязательно существует в дистрибутиве PHP5 начиная с версии 5.1.

    Поскольку у Вас выдаётся ошибка Call to undefined function: date_default_timezone_set(), значит версия скорее всего ниже 5.1.

    Чтобы проверить какая версия PHP выполняет именно ЭТОТ php-скрипт, вставьте после setlocale(LC_ALL, 'ru') экспериментально строчку:

    PHP:
    die ('PHPVersion: '.phpversion());
    Она покажет точно версию. Если версия ниже 5.1 (например 4-я), значит нужно пробовать изменить версию PHP.

    Потом эту строчку не забудьте удалить.

    Если разберётесь с версией, то просто после setlocale строчки вставьте (для постоянной работы) ещё одну:

    PHP:
    date_default_timezone_set('Asia/Vladivostok');
    И для проверки (временно) можете вставить ниже ещё одну строчку:

    PHP:
    die (date('d.m.Y H:i:s'));
    Если покажет дату по Вашему времени, значит всё правильно - эту временную строчку удаляйте и пользуйтесь скриптом.
     
    SAKH нравится это.
  3. Budulayj

    Budulayj Постоялец

    Регистр.:
    17 июн 2008
    Сообщения:
    52
    Симпатии:
    8
    Добрый день.
    setlocale(LC_ALL, 'ru'); здесь ни при чем.
    Вам необходимо вставить строчку
    date_default_timezone_set('Asia/Vladivostok'); в php-скрипте
    до начала работы с функциями даты/времени.
    Должно работать. Если нет - то уже вопрос, скорее всего, к хостеру...
     
    SAKH нравится это.
  4. SAKH

    SAKH Постоялец

    Регистр.:
    15 янв 2008
    Сообщения:
    59
    Симпатии:
    11
    Всем спасибо!
    Проверил, оказалась 4х версия, хотя ставил в панеле 5х.
    Написал хостеру... Сменили на PHPVersion: 5.1.6
    Поставил все, как советовали, проверил, показало время мое!
    Создал сообщение на форуме..... Создалось по Московскому времени!

    Думал... думал. Получается сообщения в базу MySQL пишутся и вроде как время записи сообщений зависит от времени установленного вMySQL...
    Видимо что то надо там изменять?
     
  5. Budulayj

    Budulayj Постоялец

    Регистр.:
    17 июн 2008
    Сообщения:
    52
    Симпатии:
    8
    Доступ к phpmyadmin на хостинге у Вас есть?

    // By Jeurey
    Ага, и клизма у него тоже для Вас есть. Чтобы флуд убрать из кишок :)
    На первый раз - предупреждение.
     
  6. Jeurey

    Jeurey

    Регистр.:
    13 сен 2006
    Сообщения:
    419
    Симпатии:
    576
    SAKH, не пробывали выкинуть свою CMS? Такие проблемы элементарные по ней - я фигею :)
     
  7. SAKH

    SAKH Постоялец

    Регистр.:
    15 янв 2008
    Сообщения:
    59
    Симпатии:
    11
    Доступ есть к базе.

    Выполнил запрос:
    SELECT CONVERT_TZ( '2008-07-13 14:28:00', 'SYSTEM', 'Asia/Vladivostok' ) ;
    Получил результат:
    CONVERT_TZ('2008-07-13 14:28:00','SYSTEM','Asia/Vladivostok')
    NULL
    -----------------------------------------------------------------------------------------------

    Выполнил:
    SELECT NOW(); SET TIME_ZONE='+10:00'; SELECT NOW();
    Получил:
    SQL-запрос:
    SELECT NOW( ) ;# Строки: 1
    SET TIME_ZONE = '+10:00';# MySQL вернула пустой результат (т.е. ноль строк).
    SELECT NOW( ) ;

    NOW()
    2008-07-13 13:41:40

    Казалось бы время перешло (без учета летнего)...
    Проверял на сайте (создал сообщение на форуме) - сообщения так и создаются по Московскому времени, а не по моему.
    На самом сайте я точно проверял время сервера, вернее:

    Но время создания сообщений на форуме, комментариев.... зависит от MySQL.

    Чего еще надо, не пойму.
    ----------
    А выкинуть движок.... Ну как же я его выкину теперь, когда там уже много чего есть на сайте. Опять с нуля, заново то есть... Да я и раньше примерялся на другие. Конечно такие проблемы впервые, вы правы, только на этом движке. Но движок молодой и вроде им занимаются активно. Поэтому надеюсь, что усовершенствуют. Так то вроде ничего, да еще бесплатная...

    ----------------------
    :ah: Это не про меня случаем?! Не понял что не так если сделал, конкретно скажите, больше не буду.
     
  8. Aligator26

    Aligator26 Писатель

    Регистр.:
    7 июл 2008
    Сообщения:
    3
    Симпатии:
    0
    Возможно в запросе к БД используется функция базы данных, а не ПХП. На нее не влияет функция date_default_timezone_set. Выложи кусок кода с запросом помогу.
     
Статус темы:
Закрыта.