-1

このphp関数が私のウェブサイトをフリーズさせている理由は何ですか?

 function makeAgo($timestamp){

  $difference = time() - $timestamp;
  $periods = array("sec", "min", "hr", "day", "week", "month", "year", "decade");
  $lengths = array("60","60","24","7","4.35","12","10");
  for($j = 0; $difference >= $lengths[$j]; $j++)
    $difference /= $lengths[$j];
    $difference = round($difference);
  if($difference != 1) $periods[$j].= "s";
    $text = "$difference $periods[$j] ago";
    return $text;
}
4

2 に答える 2

0

これに変更する必要があると思います:

  for($j = 0; $difference >= $lengths[$j]; $j++){
    $difference /= $lengths[$j];
    $difference = round($difference);
    if($difference != 1) $periods[$j].= "s";
      $text = "$difference $periods[$j] ago";
      return $text;
  }

中括弧なしでループを使用すると、最初の次のステートメントのみがループ内で継続的に実行され、他のステートメントは実行されないためです。

于 2013-05-08T05:06:50.737 に答える