Mysql
 sql >> Baza danych >  >> RDS >> Mysql

obliczanie i pokazywanie daty jako „sek temu”, „minuty temu”, „godziny temu” itp

Możesz użyć następującej funkcji i wywołać ją jako format_interval(time() - $saved_timestamp) , gdzie $saved_timestamp jest sygnaturą czasową „wydarzenia”, którym jesteś zainteresowany. (Poniższy kod jest objęty licencją GNU General Public License v2 lub kolejnych .)

function format_interval($interval, $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 ($interval >= $value) {
      $floor = floor($interval / $value);
      $output .= ($output ? ' ' : '') . ($floor == 1 ? $key[0] : str_replace('@count', $floor, $key[1]));
      $interval %= $value;
      $granularity--;
    }

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

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

$granularity to liczba różnych jednostek do wyświetlenia. Na przykład format_interval(32745600) zwróci "1 year 2 weeks" .

Kod, który pokazuję, to zmniejszona wersja format_interval() który jest dostarczany z Drupalem 7, który jest kodem dystrybuowanym pod GNU General Licencja publiczna v2 lub następna licencja. (Zobacz także COPYRIGHT.txt )
Zdjąłem część, która jest bardzo specyficzna dla Drupala i pozostawiłem kod, który używa prostych funkcji PHP.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Korzystanie z bazy danych NoSQL przez MySQL

  2. .NET Core 2.0 z MySQL:Określony klucz był za długi; maksymalna długość klucza to 3072 bajty

  3. Jak modelować relacje przyjaźni

  4. Błąd zapytania SQL MySQL w WordPressie w klasie WPDB

  5. Zwiększenie automatycznego przyrostu mySQL o 10 (ClearDB i Node)