수색…


CodeIgniter에서 시간대를 설정하는 방법

date_default_timezone_set('Asia/Kolkata'); 기본 URL 위의 config.php 에서도 작동합니다.

지원되는 시간대의 PHP 목록

application / config.php

<?php

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

date_default_timezone_set('Asia/Kolkata');

내가 유용하다고 생각한 또 다른 방법은 각 사용자의 시간대를 설정하는 것입니다.

  • MY_Controller.php 파일을 만듭니다.

  • user 테이블에 시간대 또는 원하는 이름을 지정할 수있는 열을 만듭니다. 이렇게하면 사용자가 자신의 시간대를 선택하면 로그인 할 때 자신의 시간대로 설정할 수 있습니다.

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;
            }
        }
    }
}

또한 PHP에서 시간대 목록을 얻으려면 다음을 수행하십시오.

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

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

codeigniter에서 시간대를 설정하는 또 다른 방법

Codehelter에서 날짜 도우미를 연장하여 표준 시간대를 설정하는 것은 다른 방법입니다. 그렇게하기 위해 다음 두 단계 활동을 수행해야합니다.

  1. 다음 함수를 사용하여 날짜 도우미를 확장합니다.
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. 이제 시간대를 config.phptime_reference 값으로 설정하십시오 : $config['time_reference'] = 'Asia/Dhaka';

이것은 모두 시간대를 사용하도록 설정되었습니다.

참고 : 첫 번째 예에서는 표준 시간대 목록이 추가되었습니다.



Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow