Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Bagaimana saya bisa memasukkan waktu nyata suatu peristiwa ke dalam database menggunakan php mysqli?

Daripada mengutak-atik zona waktu, mengapa tidak melakukannya saja

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

Ini akan berubah kolom Anda dari kolom DATE ke kolom TIMESTAMP , mengonversi semua tanggal ke stempel waktu UTC masing-masing dalam proses.

Saat baris baru dimasukkan, itu akan menggunakan stempel waktu saat ini sebagai nilai . Stempel waktu selalu dalam UTC, jadi Anda tidak perlu mengubah zona waktu di server MySql Anda, atau memberikan tanggal saat memasukkan baris baru.

Jika Anda tidak dapat atau tidak ingin mengubah kolom, Anda juga dapat memilih stempel waktu melalui

SELECT UNIX_TIMESTAMP('date_added') FROM your_table;

Untuk TimeAgo Anda, Anda bisa melakukannya

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

Saat Anda memberikan stempel waktu ke DateTime, itu akan selalu menggunakan UTC terlepas dari pengaturan zona waktu server default Anda. Akibatnya, Anda harus mengonversi $dateAdded ke zona waktu default (seperti yang ditunjukkan di atas) atau konversi $timeSinceAdded ke UTC.

Untuk mengubah dateTime ke zona waktu pengguna yang sedang mengunjungi, Anda dapat

Bagaimanapun, Anda kemudian hanya mengubah kedua DateTimes ke zona waktu itu. Ini mudah dilakukan melalui setTimezone() .

$timeSinceAdded kemudian akan menjadi DateInterval objek, yang dapat Anda gunakan seperti ini

echo $timeSinceAdded->format('%a total days');

Silakan merujuk ke tautan untuk detail lebih lanjut, misalnya tentang pengubah format yang tersedia.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Haruskah saya menggunakan PDO PARAM_LOB atau PARAM_STR untuk tipe MySQL TEXT?

  2. Bagaimana Fungsi LTRIM() Bekerja di MySQL

  3. Memigrasikan Google Cloud SQL untuk MySQL ke Server Lokal

  4. MYSQL:cara menyusun ulang tabel

  5. MySQL JOIN Multiple Joins di tabel yang sama?