开发者

how to print a date just like Eg:2 hours ago, mar 10

开发者 https://www.devze.com 2023-03-06 15:22 出处:网络
function timeSpent($date_created, $endingDay) { $diff = abs(strtotime($date_created) - strtotime(date(\"Y-m-d H:i:s\")));
  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);
          }
      }
  }

i am using this function it doesn't work properly.


One error I notice is that it can be possible to have 1 month and 0 weeks like if you were to enter April 15th. Which would result in only outputting the days and hours. Change the following.

} elseif ($week == 0) {

to

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

This could be causing your problem depending on the date you entered.

0

精彩评论

暂无评论...
验证码 换一张
取 消

关注公众号