Как установить date.timezone для CodeIgniter для работы с php 5.3 - PullRequest
25 голосов
/ 03 февраля 2011

Когда date.timezone в php.ini закомментирован, он дает мне:

Обнаружена ошибка PHP

Серьезность: Предупреждение

Сообщение:main (): небезопасно полагаться на настройки часового пояса системы.Вы обязаны использовать настройку date.timezone или функцию date_default_timezone_set ().Если вы использовали какой-либо из этих методов и по-прежнему получаете это предупреждение, вы, скорее всего, неправильно написали идентификатор часового пояса.Вместо этого мы выбрали 'America / Los_Angeles' для '-8.0 / no DST'

Имя файла: controllers / helloworld.php

Номер строки: 2

Когда яhave

date.timezone = "America/Los_Angeles"

Это дает мне следующее:

Ошибка сервера На веб-сайте обнаружена ошибка при получении http://localhost/ci/index.php/helloworld. Возможно, он недоступен для обслуживания или неправильно настроен.Вот несколько советов: Перезагрузите эту страницу позже.Ошибка HTTP 500 (внутренняя ошибка сервера): возникла непредвиденная ситуация при попытке сервера выполнить запрос.

Я использую php 5.3, CodeIgniter 2.0.0 и Apache 2.2.

Обновление 1: я попытался загрузить test.php без CodeIgniter, где первые 3 строки test.php имеют значение

date_default_timezone_set('America/Los_Angeles');
echo date("l j \of F Y h:i:s A");

И он работает нормально, также работают разные часовые пояса.Поэтому я подозреваю, что проблема в CodeIgniter.

Ответы [ 5 ]

73 голосов
/ 03 февраля 2011

Если вы прогуглили «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 здесь .

21 голосов
/ 04 октября 2011

Да, если вы не можете напрямую редактировать файл php.ini, поместив ...

ini_set('date.timezone', 'America/New_York');

... как первая строка в index.php CI работает нормально.

Ссылка: Доступные часовые пояса PHP

8 голосов
/ 22 июля 2013

напишите в свой index.php codeigniter ...

/*
|---------------------------------------------------------------
| TimeZone 
|---------------------------------------------------------------
|
| default Time Zone
| 

*/
if ( function_exists( 'date_default_timezone_set' ) )
date_default_timezone_set('Asia/Jakarta');

Хорошо работает в моем codeigniter

4 голосов
/ 02 февраля 2012

это простой способ сделать это

$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') ";
3 голосов
/ 03 февраля 2011

date.timezone предназначен для использования в вашем файле php.ini или .htaccess.

вы можете сделать ini_set('date.timezone', 'America/Los_Angeles'); в первой строке вашего скрипта и получить желаемый результат.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...