как напечатать дату, как например: 2 часа назад, 10 марта - PullRequest
0 голосов
/ 16 мая 2011
  function timeSpent($date_created, $endingDay)
  {
      $diff = abs(strtotime($date_created) - strtotime(date("Y-m-d H:i:s")));
      $years = floor($diff / (365 * 60 * 60 * 24));
      $months = floor(($diff - $years * 365 * 60 * 60 * 24) / (30 * 60 * 60 * 24));
      $days = floor(($diff - $years * 365 * 60 * 60 * 24 - $months * 30 * 60 * 60 * 24) / (60 * 60 * 24));
      $hours = floor(($diff - $years * 365 * 60 * 60 * 24 - $months * 30 * 60 * 60 * 24 - $days * 60 * 60 * 24) / (60 * 60));
      $minuts = floor(($diff - $years * 365 * 60 * 60 * 24 - $months * 30 * 60 * 60 * 24 - $days * 60 * 60 * 24 - $hours * 60 * 60) / 60);
      $seconds = floor(($diff - $years * 365 * 60 * 60 * 24 - $months * 30 * 60 * 60 * 24 - $days * 60 * 60 * 24 - $hours * 60 * 60 - $minuts * 60));
           $week = floor($days / 7);
          $day = $days % 7;
          if ($week < 1 && $week != 0) {
             return $days . " days - " . $hours . " hrs - " . $minuts . "- min" . $week;
          } elseif ($week == 0) {
              if ($days != 0) {
                  return $days . "days " . $hours . "hours ago";
              } elseif ($hours != 0) {
                  return $hours . "hours " . $minuts . "minute ago";
              } elseif ($minuts) {
                  return $minuts . "minute " . $seconds . "seconds ago";
              } else {
                  return "few seconds ago";
              }
          } else {
              $stamp = strtotime($date_created);
              return date("F d Y", $stamp);
          }
      }
  }

Я использую эту функцию, она не работает должным образом.

1 Ответ

0 голосов
/ 16 мая 2011

Одна ошибка, которую я замечаю, состоит в том, что может быть 1 месяц и 0 недель, как если бы вы вводили 15 апреля.Что приведет только к выводу дней и часов.Измените следующее.

} elseif ($week == 0) {

на

} elseif ($week == 0 && $months == 0 && $years == 0) {

Это может быть причиной вашей проблемы в зависимости от введенной вами даты.

...