Пользовательское форматирование времени в прошлом - PullRequest
2 голосов
/ 21 августа 2010

Хотите отобразить другое сообщение, если время меньше определенной суммы.Затем у меня есть функция, над которой я работаю, но не могу заставить ее работать, если время не равно 1. Хотел бы 10 минут.

function TimeSince($timestamp)
    {
    // array of time period chunks
    $chunks = array(
        array(60 * 60 * 24 * 365 , 'year'),
        array(60 * 60 * 24 * 30 , 'month'),
        array(60 * 60 * 24 * 7, 'week'),
        array(60 * 60 * 24 , 'day'),
        array(60 * 60 , 'hour'),
        array(60 , 'minute'),
    );

    // difference in seconds
    $since = time() - $timestamp;

    // calculate one chunk of time
    for ($i = 0, $j = count($chunks); $i < $j; $i++)
        {
        $seconds = $chunks[$i][0];
        $name = $chunks[$i][1];

        // finding the biggest chunk (if the chunk fits, break)
        if (($count = floor($since / $seconds)) != 0)
            {
            break;
            }
        }

    // set output var
    $output = ($count == 1) ? '1 '.$name : "$count {$name}s";

    // Displays time of if under 10 minutes displays Just Now
  if($output < 10) {
    return ("Just Now!");
  }
    else {
          return ($output . " ago");
        }   
    return $output;
    }

Ответы [ 2 ]

1 голос
/ 21 августа 2010

В следующей строке кода:

$output = ($count == 1) ? '1 '.$name : "$count {$name}s";

Вы переопределяете $output как строку, рассмотрите возможность проверки перед тем, как назначить ее, например:

// Displays time of if under 10 minutes displays Just Now
if($count < 10) {
  return ("Just Now!");
}
  else {
  // set output var
  $output = ($count == 1) ? '1 '.$name : "$count {$name}s";
  return ($output . " ago");
}   
0 голосов
/ 21 августа 2010

Вы устанавливаете $output в строковое значение в этой строке:

$output = ($count == 1) ? '1 '.$name : "$count {$name}s";

И затем пытаетесь сравнить его с числом.Попробуйте присвоить числовое значение $output.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...