2015-07-09 2 views
21

Я работаю в php-проекте, используя codeigniter. Пожалуйста, сообщите мне, что является глобальным способом установки часового пояса для php и mysql. В каком файле я могу установить это. Я хочу установить его без файлов php.ini и .htaccess.Как установить часовую зону в codeigniter?

В настоящее время я использую это перед каждой записью -:

date_default_timezone_set("Asia/Kolkata"); 
$time = Date('Y-m-d h:i:s'); 
+1

Довольно уверен в 'php.ini' вы можете установить глобальный часовой пояс. – theGreenCabbage

+0

Возможно [это] (http://stackoverflow.com/questions/4882790/how-to-set-date-timezone-for-code-igniter-to-work-with-php5-3) и [это] (http : //stackoverflow.com/questions/17426887/codeigniter-timezone-mysql-settings) может вам помочь. –

+0

Возможный дубликат [Изменить часовой пояс в Codeigniter] (http://stackoverflow.com/questions/7170746/change-the-time-zone-in-codeigniter) – user4419336

ответ

44

Размещение date_default_timezone_set('Asia/Kolkata'); на config.php выше базового url также работает

PHP List of Supported Time Zones

применение/config.php

<?php 

defined('BASEPATH') OR exit('No direct script access allowed'); 

date_default_timezone_set('Asia/Kolkata'); 

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

Создать MY_Controller. php

создать столбец в вашей пользовательской таблице, вы можете назвать его часовой пояс или любую вещь, которую вы хотите. Таким образом, когда пользователь выбирает свой часовой пояс, он может быть установлен на свой часовой пояс при входе в систему.

приложение/ядро ​​/ MY_Controller.php

<?php 

class MY_Controller extends CI_Controller { 

    public function __construct() { 
     parent::__construct(); 
     $this->set_timezone(); 
    } 

    public function set_timezone() { 
     if ($this->session->userdata('user_id')) { 
      $this->db->select('timezone'); 
      $this->db->from($this->db->dbprefix . 'user'); 
      $this->db->where('user_id', $this->session->userdata('user_id')); 
      $query = $this->db->get(); 
      if ($query->num_rows() > 0) { 
       date_default_timezone_set($query->row()->timezone); 
      } else { 
       return false; 
      } 
     } 
    } 
} 

Кроме того, чтобы получить список часовых поясов в PHP

$timezones = DateTimeZone::listIdentifiers(DateTimeZone::ALL); 

foreach ($timezones as $timezone) 
{ 
    echo $timezone; 
    echo "</br>"; 
} 
+0

Это не сработает на каком-то глупом общедоступном хостинге, потому что они отключили его, поэтому пользователь не может изменить часовой пояс, используя * date_default_timezone_set *, и чтобы изменить его, вам нужно обновить план хостинга, который будет дорогостоящим. Будьте осторожны, чей хостинг, который вы покупаете, может иметь неприятные последствия. –

0

Положите его в config/config.php, он будет работать для всего приложения или index.php из CodeIgniter.

2

Как описано here

  1. Откройте файл php.ini (искать его)

  2. Добавьте следующую строку кода в верхней части файла:

    date.timezone = "US/Central"

  3. Проверьте изменения, перейдя по ссылке phpinfo.php

2

добавить его в файл index.php , и он будет работать на всем сайте

if (function_exists('date_default_timezone_set')) { 
    date_default_timezone_set('Asia/Kolkata'); 
} 
+0

Эта функция будет бесполезной, если некоторые глупые общие хосты отключили ее в php.ini, чтобы изменить часовой пояс. –

5

Добавьте эту строку внутри главного index.php папки CodeIgniter

date_default_timezone_set('Asia/Kolkata'); 
1

вы можете попробовать это:

date_default_timezone_set('Asia/Kolkata'); 

В application/config.PHP ИЛИ приложение/autoload.php

Существует выглядеть следующим образом:

<?php if (! defined('BASEPATH')) exit('No direct script access allowed'); 

date_default_timezone_set('Asia/Kolkata'); 

Это работает хорошо для меня, я думаю, что это лучший способ определить DEFAULT TIMEZONE в codeignitor.

0

Добавьте эту строку в autoload.php в папке приложения:

$autoload['time_zone'] = date_default_timezone_set('Asia/Kolkata'); 
2

Если вы ищете globabally установки часового пояса в целом проект, то вы можете установить его CI application/config.php файл

$config['time_reference'] = 'Asia/Dubai';