Zoeken…


Hoe de tijdzone in te stellen in CodeIgniter

date_default_timezone_set('Asia/Kolkata'); plaatsen date_default_timezone_set('Asia/Kolkata'); op config.php boven basis-URL werkt ook.

PHP Lijst met ondersteunde tijdzones

application / config.php

<?php

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

date_default_timezone_set('Asia/Kolkata');

Een andere manier die ik nuttig heb gevonden, is als je een tijdzone voor elke gebruiker wilt instellen:

  • Maak een MY_Controller.php bestand.

  • Maak een kolom in uw user , u kunt deze een tijdzone noemen of wat u maar wilt. Dus op die manier kan de gebruiker, wanneer hij zijn tijdzone selecteert, zijn tijdzone instellen bij het inloggen.

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

Om de lijst met tijdzones in PHP te krijgen:

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

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

Een andere manier om tijdzone in codeigniter in te stellen

Het is een alternatieve manier om de tijdzone in Codeigniter in te stellen door de datumhelper uit te breiden. Om dat te doen, moet u de volgende tweestapsactiviteit volgen.

  1. Verleng datumhelper met de volgende functie:
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. Stel nu de tijdzone in als een waarde van time_reference van config.php zoals: $config['time_reference'] = 'Asia/Dhaka';

Dit is allemaal ingesteld voor het gebruik van de tijdzone.

Ter info: lijst met tijdzonelijst is toegevoegd in het eerste voorbeeld.



Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow