Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

tính toán và hiển thị một ngày như 'giây trước', 'phút trước', 'giờ trước' v.v.

Bạn có thể sử dụng hàm sau và gọi nó là format_interval(time() - $saved_timestamp) , trong đó $saved_timestamp là dấu thời gian của "sự kiện" mà bạn quan tâm. (Mã sau được cấp phép theo Giấy phép Công cộng GNU v2 hoặc kế tiếp .)

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';
}

$ chi tiết là số lượng các đơn vị khác nhau để hiển thị. Ví dụ:format_interval(32745600) sẽ trả về "1 year 2 weeks" .

Mã tôi đang hiển thị là phiên bản rút gọn của format_interval() đi kèm với Drupal 7, được phân phối mã theo GNU General Giấy phép Công khai v2 hoặc kế tiếp giấy phép. (Xem thêm COPYRIGHT.txt )
Tôi đã loại bỏ phần rất cụ thể của Drupal và để lại mã sử dụng các hàm PHP thuần túy.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Làm cách nào để đặt lại MySQL AutoIncrement bằng cách sử dụng giá trị MAX từ một bảng khác?

  2. Tìm kiếm toàn văn bản trong MySQL trên nhiều bảng

  3. Sự cố khi lưu trữ các giá trị Vĩ độ và Kinh độ trong cơ sở dữ liệu MySQL

  4. Batch-file cho mysqldump để sao lưu từng cơ sở dữ liệu thành một tệp riêng biệt

  5. Không có hoạt động nào được phép sau khi câu lệnh đóng