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

Статус
В этой теме нельзя размещать новые ответы.

SAKH

Постоялец
Регистрация
15 Янв 2008
Сообщения
77
Реакции
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(), Для просмотра ссылки Войди или Зарегистрируйся). Пытался в .htaccess вписываьь, но тоже ошибки выдаются...

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

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

Ну скорее всего причина именно в ВЕРСИИ 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
Добрый день.
setlocale(LC_ALL, 'ru'); здесь ни при чем.
Вам необходимо вставить строчку
date_default_timezone_set('Asia/Vladivostok'); в php-скрипте
до начала работы с функциями даты/времени.
Должно работать. Если нет - то уже вопрос, скорее всего, к хостеру...
 
  • Нравится
Реакции: SAKH
Всем спасибо!
Проверил, оказалась 4х версия, хотя ставил в панеле 5х.
Написал хостеру... Сменили на PHPVersion: 5.1.6
Поставил все, как советовали, проверил, показало время мое!
Создал сообщение на форуме..... Создалось по Московскому времени!

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

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

Выполнил запрос:
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.

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

----------------------
// By Jeurey
Ага, и клизма у него тоже для Вас есть. Чтобы флуд убрать из кишок
На первый раз - предупреждение.
:ah: Это не про меня случаем?! Не понял что не так если сделал, конкретно скажите, больше не буду.
 
Возможно в запросе к БД используется функция базы данных, а не ПХП. На нее не влияет функция date_default_timezone_set. Выложи кусок кода с запросом помогу.
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху