codeigniter
Festlegen der Zeitzone in CodeIgniter
Suche…
So stellen Sie die Zeitzone in CodeIgniter ein
Platzieren von date_default_timezone_set('Asia/Kolkata');
In der config.php
über der Basis-URL funktioniert auch.
PHP- Liste der unterstützten Zeitzonen
Anwendung / config.php
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
date_default_timezone_set('Asia/Kolkata');
Ein anderer Weg, den ich für nützlich befunden habe, ist, wenn Sie für jeden Benutzer eine Zeitzone festlegen möchten:
Erstellen Sie eine
MY_Controller.php
Datei.Erstellen Sie in Ihrer
user
eine Spalte, in der Sie die Zeitzone angeben können. Auf diese Weise kann der Benutzer beim Auswählen seiner Zeitzone beim Anmelden auf seine Zeitzone gesetzt werden.
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;
}
}
}
}
Um auch eine Liste der Zeitzonen in PHP zu erhalten:
$timezones = DateTimeZone::listIdentifiers(DateTimeZone::ALL);
foreach ($timezones as $timezone) {
echo $timezone;
echo "<br />";
}
Eine andere Möglichkeit zum Einstellen der Zeitzone in Codeigniter
Eine andere Möglichkeit besteht darin, die Zeitzone in Codeigniter durch Erweitern des Datumshelfers festzulegen. Dazu müssen Sie die folgenden zwei Schritte ausführen.
- Erweitern Sie den Datumshelfer mit der folgenden Funktion:
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
config.php
nun die Zeitzone als Wert fürtime_reference
vonconfig.php
:$config['time_reference'] = 'Asia/Dhaka';
Dies ist alles für die Zeitzone eingestellt.
Zu Ihrer Information: Liste der Zeitzonenliste wird im ersten Beispiel hinzugefügt.