我正在尝试创建一个“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;
}
有任何想法吗?