正确的方法来定义CodeIgniter时区

时间:2015-09-05 20:37:27

标签: php codeigniter

我在使用CodeIgniter制作平台时遇到了一些问题,无法在特定时区内回显时间。根据{{​​3}},如果我想在EST中输出DST时的时间戳,我会使用类似于以下内容的东西:

$timezone  = 'UM5';
$daylight_saving = TRUE;

我的第一个想法是将config.php中的主时间参考更改为UM5 - 但这并没有改变任何内容。

此时我非常确定我需要在我正在使用的PHP页面中的某处插入上述变量。问题是,我不太确定我需要在哪里插入它们。

这是当前页面的样子:

<?php 

class IG_Time extends CI_Model {

function __construct()
{
    // Call the Model constructor
    parent::__construct();
}

// return date and time in format selected by user
function GetDateTimeInFormat($datestamp, $format)
{
    switch($format)
    {
        // Swatch Internet Time
        case null:
        case 1:
            return date_format(date_create($datestamp), 'jS F, Y') . ' @' . date("B", human_to_unix($datestamp)) . ' .beats';
        // Unix time
        case 2:
            return human_to_unix($datestamp);
        // Time since
        case 3:
            return timespan(human_to_unix($datestamp), time()) . ' ago';
        // Database
        case 4:
            return $datestamp;
        // English
        case 5:
            return date_format(date_create($datestamp), 'jS F, Y, g:i a');
        // American
        case 6:
            return date_format(date_create($datestamp), 'F jS, Y, g:i a');

    }
}
}

我尝试在开头直接添加$ timezone和$ daylight_saving变量

return date_format(date_create($datestamp,$timezone,$daylight_saving), 'F jS, Y, g:i a');

但这似乎完全打破了时间,所以我默认恢复了它。

我需要在哪里放置$ timezone和$ daylight_saving变量,以及如何使用它们尝试&#34;返回date_format&#34;。

提前致谢!

1 个答案:

答案 0 :(得分:0)

将此代码放在root

上的index.php文件中
if( ! ini_get('date.timezone') )
{
   date_default_timezone_set('UM5');
}