codeigniter
Comment définir un fuseau horaire dans CodeIgniter
Recherche…
Comment définir le fuseau horaire dans CodeIgniter
Placer date_default_timezone_set('Asia/Kolkata');
sur config.php
ci-dessus l'URL de base fonctionne également.
Liste PHP des fuseaux horaires pris en charge
application / config.php
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
date_default_timezone_set('Asia/Kolkata');
Une autre façon que j'ai trouvée utile est de définir un fuseau horaire pour chaque utilisateur:
Créez un fichier
MY_Controller.php
.Créez une colonne dans votre table
user
, vous pouvez la nommer fuseau horaire ou toute autre chose que vous souhaitez. Ainsi, lorsque l'utilisateur sélectionne son fuseau horaire, il peut être défini sur son fuseau horaire lors de la connexion.
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;
}
}
}
}
Aussi, pour obtenir la liste des fuseaux horaires en PHP:
$timezones = DateTimeZone::listIdentifiers(DateTimeZone::ALL);
foreach ($timezones as $timezone) {
echo $timezone;
echo "<br />";
}
Une autre façon de définir le fuseau horaire dans le codeigniter
La définition du fuseau horaire dans Codeigniter en étendant la date de l'assistant est une autre solution. Pour ce faire, vous devez suivre l'activité en deux étapes suivante.
- Prolonger l'assistant de date avec la fonction suivante:
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);
}
}
-
time_reference
maintenant le fuseau horaire comme une valeur detime_reference
deconfig.php
comme:$config['time_reference'] = 'Asia/Dhaka';
Tout est réglé pour utiliser le fuseau horaire.
FYI: la liste de la liste des fuseaux horaires est ajoutée dans le premier exemple.