2015-07-09 22 views
21

Sto lavorando ad un progetto php usando codeigniter. Si prega di avvisarmi qual è il modo globale di impostare il fuso orario per php e mysql. In quale file posso impostare questo. Voglio impostarlo senza file php.ini e .htaccess.Come impostare il fuso orario in codeigniter?

Attualmente sto usando questo prima di ogni ingresso -:

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

Abbastanza sicuro in 'php.ini' puoi impostare il fuso orario globale. – theGreenCabbage

+0

Probabilmente [questo] (http://stackoverflow.com/questions/4882790/how-to-set-time-timezone-for-code-igniter-to-work-with-php5-3) e [this] (http : //stackoverflow.com/questions/17426887/codeigniter-timezone-mysql-settings) può aiutarti. –

+0

possibile duplicato di [Modifica il fuso orario in Codeigniter] (http://stackoverflow.com/questions/7170746/change-the-time-zone-in-codeigniter) – user4419336

risposta

44

Inserendo questo date_default_timezone_set('Asia/Kolkata'); su config.php sopra l'url di base funziona anche

PHP List of Supported Time Zones

application/config.php

<?php 

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

date_default_timezone_set('Asia/Kolkata'); 

Un altro modo che ho trovato l'uso completo è se si desidera impostare un fuso orario per ogni utente

Creare un mio_controllore. php

creare una colonna nella tabella utente è possibile denominarlo fuso orario o qualsiasi cosa che si desidera. In questo modo, quando l'utente seleziona il suo fuso orario, può essere impostato sul suo fuso orario al momento dell'accesso.

application/core/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; 
      } 
     } 
    } 
} 

anche per ottenere l'elenco dei fusi orari in php

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

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

Questo non funzionerà su qualche stupido hosting condiviso perché lo disabilitano in modo che l'utente non possa cambiare fuso orario usando * date_default_timezone_set * e per cambiarlo è necessario aggiornare il piano di hosting che sarà costoso. Fai attenzione a chi ti ospita l'hosting potrebbe ritorcersi contro. –

0

Metti in config/config.php, funzionerà per l'intera applicazione o index.php di CodeIgniter.

2

come descritto here

  1. Aprire il file php.ini (cercarlo)

  2. Aggiungere la seguente riga di codice nella parte superiore del file:

    date.timezone = "US/Central"

  3. Verificare le modifiche andando a phpinfo.php

2

aggiungere nel file index.php , e funziona su tutto il tuo sito

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

Questa funzione sarà inutile se alcuni host di hosting stupidi lo disabilitano in php.ini per cambiare fuso orario. –

5

Aggiungere questa linea all'interno del principale index.php della cartella di CodeIgniter

date_default_timezone_set('Asia/Kolkata'); 
1

si può provare questo:

date_default_timezone_set('Asia/Kolkata'); 

in application/config.php O application/autoload.php

C'è simile a questa:

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

date_default_timezone_set('Asia/Kolkata'); 

Si sta lavorando bene per me, penso che questo sia il modo migliore per definire DI DEFAULT TIMEZONE in CodeIgnitor.

0

Aggiungi questa linea al autoload.php nella cartella dell'applicazione:

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

Se siete alla ricerca globabally impostazione fuso orario in tutto il progetto, allora è possibile impostare lo CI application/config.php file di

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