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

Làm cách nào tôi có thể chèn thời gian thực của một sự kiện vào cơ sở dữ liệu bằng php mysqli?

Thay vì loay hoay với múi giờ, tại sao không làm

ALTER TABLE `your_table`
  CHANGE `date_added` `date_added`
  TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP

Điều này sẽ thay đổi cột của bạn từ cột DATE đến cột TIMESTAMP , chuyển đổi tất cả các ngày thành dấu thời gian UTC tương ứng của chúng trong quá trình này.

Khi một hàng mới được chèn, nó sẽ sử dụng dấu thời gian hiện tại như một giá trị . Dấu thời gian luôn ở UTC, vì vậy bạn không phải thay đổi múi giờ trên máy chủ MySql của mình, cũng như cung cấp ngày khi chèn một hàng mới.

Nếu bạn không thể hoặc không muốn thay đổi các cột của mình, bạn cũng có thể chỉ cần chọn dấu thời gian qua

SELECT UNIX_TIMESTAMP('date_added') FROM your_table;

Đối với TimeAgo của bạn, sau đó bạn có thể thực hiện

$now = new DateTime;
$dateAdded = new DateTime("@$yourTimestampFromDb");
$dateAdded->setTimezone($now->getTimezone());
$timeSinceAdded = $dateAdded->diff($now);

Khi bạn cung cấp dấu thời gian cho DateTime, nó sẽ luôn sử dụng UTC bất kể múi giờ máy chủ mặc định của bạn là gì. Do đó, bạn phải chuyển đổi $dateAdded sang múi giờ mặc định (như được hiển thị ở trên) hoặc chuyển đổi $timeSinceAdded sang UTC.

Để thay đổi dateTime thành múi giờ của người dùng hiện đang truy cập, bạn

Trong mọi trường hợp, bạn chỉ cần thay đổi cả DateTimes thành múi giờ đó. Điều này được thực hiện dễ dàng thông qua setTimezone() .

$timeSinceAdded sau đó sẽ là một DateInterval đối tượng, mà bạn có thể sử dụng như thế này

Định dạng
echo $timeSinceAdded->format('%a total days');

Vui lòng tham khảo các liên kết để biết thêm chi tiết, chẳng hạn như về các công cụ sửa đổi định dạng có sẵn.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. MYSQL - Chọn dữ liệu từ hàng thứ hai trong một bảng lớn

  2. Kết nối với cơ sở dữ liệu mysql 5.0 bằng vbscript thuần túy?

  3. Truy vấn Mysql với biến mysql không hoạt động trong Zend Framework 1

  4. Cách xoay bảng trong MySQL

  5. tham gia bên phải so với tham gia bên trái