codeigniter
Cómo configurar la zona horaria en CodeIgniter
Buscar..
Cómo configurar la zona horaria en CodeIgniter
Colocando date_default_timezone_set('Asia/Kolkata');
en config.php
encima de la base URL también funciona.
Lista de PHP de zonas horarias soportadas
aplicación / config.php
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
date_default_timezone_set('Asia/Kolkata');
Otra forma que he encontrado útil es si desea establecer una zona horaria para cada usuario:
Crea un archivo
MY_Controller.php
.Cree una columna en su tabla de
user
que puede nombrarle zona horaria o cualquier cosa que desee. De esa manera, cuando el usuario selecciona su zona horaria, puede configurarse en su zona horaria cuando inicia sesión.
aplicación / 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;
}
}
}
}
Además, para obtener la lista de zonas horarias en PHP:
$timezones = DateTimeZone::listIdentifiers(DateTimeZone::ALL);
foreach ($timezones as $timezone) {
echo $timezone;
echo "<br />";
}
Otra forma de configurar la zona horaria en codeigniter
Establecer la zona horaria en Codeigniter extendiendo la ayuda de la fecha es una forma alternativa. Para hacer eso necesitas seguir la siguiente actividad de dos pasos.
- Extender la fecha ayudante con la siguiente función:
if ( ! function_exists('now'))
{
/**
* Get "now" time
*
* Returns time() based on the timezone parameter or on the
* "time_reference" setting
*
* @param string
* @return int
*/
function now($timezone = NULL)
{
if (empty($timezone))
{
$timezone = config_item('time_reference');
}
if ($timezone === 'local' OR $timezone === date_default_timezone_get())
{
return time();
}
$datetime = new DateTime('now', new DateTimeZone($timezone));
sscanf($datetime->format('j-n-Y G:i:s'), '%d-%d-%d %d:%d:%d', $day, $month, $year, $hour, $minute, $second);
return mktime($hour, $minute, $second, $month, $day, $year);
}
}
- Ahora configure la zona horaria como un valor de
time_reference
deconfig.php
como:$config['time_reference'] = 'Asia/Dhaka';
Todo esto está configurado para usar la zona horaria.
Para su información: Lista de zonas horarias se agrega en el primer ejemplo.