「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;
}
何か案は?