错误的时间现在(Codeigniter)

时间:2013-07-04 07:22:04

标签: codeigniter time timezone timestamp

我在Codeigniter中遇到与现在时间有关的问题。 我在codeigniter中使用 timespan 函数。我必须得到当前时间,现在它返回错误的当前时间。我在电脑上的约会(截至目前)是2013-07-04 3:21 PM,但是当我这样做时:

$now = time(); 
$human = unix_to_human($now);
echo $human;

输出结果是2013-07-05 12:20 AM。那是为什么?

3 个答案:

答案 0 :(得分:0)

它返回Web服务器时间,而不是您的pc时间。尝试将时区设置为您的位置。

答案 1 :(得分:0)

将此代码放在index.php(引导程序文件)的顶部。

if( ! ini_get('date.timezone') )
{
   date_default_timezone_set('Asia/Dhaka');
} 

而不是'Asia / Dhaka'使用您自己的时区。应该做的工作。

答案 2 :(得分:0)

我已经通过CodeIgniter中的Helper类解决了此问题:

<?php

namespace App\Helpers;

use CodeIgniter\I18n\Time;

class DateHelper {

    public static function getTime($dateString = 'now'){
        
        $time = new Time($dateString);
        if(!$time->getDst()){
            $time = $time->subHours(1);
        }
        return $time;
    }

    public static function getNowString(){
        return static::getTime()->format('Y-m-d H:i:s');
    }

}

我基本上使用此功能:

    /**
     * ( function from CodeIgniter\I18n\Time )
     * Are we in daylight savings time currently?
     *
     * @return boolean
     */
    public function getDst(): bool

要检查我们当前是否处于夏令时, 如果是这样,我减去1小时。这对我有用,我的时区是默认使用的Europe / Lisbon,因为我已经通过更改以下变量在app / config / App.php中对其进行了配置:

 public $appTimezone = 'Europe/Lisbon';.