日期功能始终返回+12小时

时间:2012-06-11 21:00:25

标签: php date time

我正在尝试创建一个“x分钟前”类型的函数(from this example),由于某种原因,结果给了我正确的结果......但是增加了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;
    }

有什么想法吗?

1 个答案:

答案 0 :(得分:0)

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

或者

date_default_timezone_set()添加到您的代码中:

date_default_timezone_set('America/Los_Angeles');