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.

  1. 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);
    }
}
  1. time_reference config.php nun die Zeitzone als Wert für time_reference von config.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.



Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow