, 'dakika önce', hesaplanması ve 'sn önce' gibi bir tarih gösteren 'saat önce' vb [yinelenen]

2 Cevap php

Bu soru burada zaten bir cevabı var:

2 Cevap

Bildiğim kadarıyla, bunu gerçekleştirmek için PHP yerleşik hiçbir işlevi yoktur, ama zaten bu amaç için yazılmış fonksiyonlar var gibi görünüyor yok.

Bir here bunu için gerekenleri yapmak mümkün gibi görünüyor. (Bunu biraz çimdik gerekebilir)

Sen şu işlevini kullanın ve format_interval(time() - $saved_timestamp), burada $saved_timestamp ilgilendiğiniz "olay" damgası olduğu gibi çağırabilirsiniz

function format_interval($timestamp, $granularity = 2) {
  $units = array('1 year|@count years' => 31536000, '1 week|@count weeks' => 604800, '1 day|@count days' => 86400, '1 hour|@count hours' => 3600, '1 min|@count min' => 60, '1 sec|@count sec' => 1);
  $output = '';
  foreach ($units as $key => $value) {
    $key = explode('|', $key);
    if ($timestamp >= $value) {
      $floor = floor($timestamp / $value);
      $output .= ($output ? ' ' : '') . ($floor == 1 ? $key[0] : str_replace('@count', $floor, $key[1]));
      $timestamp %= $value;
      $granularity--;
    }

    if ($granularity == 0) {
      break;
    }
  }

  return $output ? $output : '0 sec';
}