0

我正在尝试创建一个“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;
    }

有任何想法吗?

4

1 回答 1

0

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

或者

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

date_default_timezone_set('America/Los_Angeles');
于 2012-06-11T21:23:20.250 回答