日期函数始终返回 +12 小时


Date function always returns +12 hours

我正在尝试创建一个"x 分钟前"类型的函数(来自此示例),由于某种原因,结果给了我正确的结果......但增加了 12 个小时。我给出的日期是正确的,我的时区是正确的,所以它必须是函数中的东西,但我找不到任何东西。

这是我的函数:

function when($dt,$precision=2){
        $times=array(   
            365*24*60*60    => "year",
            30*24*60*60     => "month",
            7*24*60*60      => "week",
            24*60*60        => "day",
            60*60           => "hour",
            60              => "minute",
            1               => "second"
        );
        $passed=time()-$dt;
        if($passed<5){
            $output='less than 5 seconds ago';
        } elseif($passed > 172800) {
             $output=date("jS F,Y",$dt);
        } else {
            $output=array();
            $exit=0;
            foreach($times as $period=>$name){
                if($exit>=$precision OR ($exit>0 && $period<60)) break;
                $result = floor($passed/$period);
                if($result>0){
                    $output[]=$result.' '.$name.($result==1?'':'s');
                    $passed-=$result*$period;
                    $exit++;
                } else if($exit>0){
                    $exit++;
                }
            }
            $output=implode(', ',$output).' ago';
        }
        return $output;
    }

有什么想法吗?

如果您通过 php.ini 更改了时区,请确保重新启动 Apache。

将 date_default_timezone_set() 添加到代码中:

date_default_timezone_set('America/Los_Angeles');