Как установить date.timezone для воспламенителя кода для работы с php5.3
Когда date.timezone в php.ini закомментирован, он дает мне:
Возникла ошибка PHP
Уровень важности: предупреждение
Сообщение: main(): Небезопасно полагаться на системный часовой пояс Настройки. Вы должны использовать настройки date.timezone или date_default_timezone_set(). Если вы использовали любой из этих методов и вы все еще получаете это предупреждение, вы, скорее всего, ошибочно идентификатор часового пояса. Мы выбрали 'Америка/Los_Angeles' за '-8.0/no DST 'вместо
Имя файла: controllers/helloworld.php
Номер строки: 2
Когда у меня есть
date.timezone = "America/Los_Angeles"
Это дает мне следующее:
Ошибка сервера На веб-сайте ошибка при получении http://localhost/ci/index.php/helloworld. Он может быть недоступен для обслуживания или неправильно настроен. Вот некоторые предложения: Перезагрузить страницу позже. Ошибка HTTP 500 (внутренний сервер Ошибка): неожиданное условие было когда сервер был пытаясь выполнить запрос.
Я использую php5.3, код воспламенителя 2.0.0 и Apache2.2. У кого-то тоже есть эта проблема?
Обновление 1:
Я попробовал загрузить test.php без воспламенителя кода, где первые 3 строки test.php
date_default_timezone_set('America/Los_Angeles');
echo date("l j \of F Y h:i:s A");
И он отлично работает, разные таймеры также отлично работают.
Поэтому я подозреваю, что проблема связана с воспламенением кода...
Кто-нибудь, использующий здесь код воспламенителя?
Ответы
Ответ 1
Если вы Googled "CodeIgniter PHP 5.3", вы бы нашли эту статью довольно быстро:)
http://philsturgeon.co.uk/blog/2009/12/CodeIgniter-on-PHP-5.3
Чтобы исправить это, вам нужно только отредактировать основной index.php для вашего приложения CodeIgniter:
if( ! ini_get('date.timezone') )
{
date_default_timezone_set('GMT');
}
Эта модификация - это то, что вам, вероятно, потребуется сделать для любого приложения CodeIgniter, работающего на PHP 5.3, и его можно легко изменить в локальный часовой пояс. Существует полный список поддерживаемых часовых поясов в руководстве PHP здесь.
Ответ 2
Да, если вы не можете напрямую редактировать файл php.ini, поместив...
ini_set('date.timezone', 'America/New_York');
... поскольку первая строка в CI index.php отлично работает.
Ссылка: PHP Доступные часовые пояса
Ответ 3
пишите в свой index.php codeigniter...
/*
|---------------------------------------------------------------
| TimeZone
|---------------------------------------------------------------
|
| default Time Zone
|
*/
if ( function_exists( 'date_default_timezone_set' ) )
date_default_timezone_set('Asia/Jakarta');
Хорошо работает в моем кодеригере
Ответ 4
это простой способ сделать это
$timezone = "Asia/Calcutta";
if(function_exists('date_default_timezone_set')) date_default_timezone_set($timezone);
//echo date('d-m-Y H:i:s');
$localtime=date('H:i:s');
$sql="INSERT INTO hits (ip,edate,curtime,page_name) VALUES ('$ip', CURDATE(),'$localtime','$filename') ";
Ответ 5
date.timezone предназначен для входа в ваш файл php.ini или .htaccess.
вы можете сделать ini_set('date.timezone', 'America/Los_Angeles');
в первой строке вашего script и получить желаемые результаты.