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

PHP &MySQL:Mengubah TIMESTAMP Tersimpan menjadi Zona Waktu Lokal Pengguna

Nilai tanggal/waktu/datetime disimpan di MySQL saat Anda menyediakannya. Yaitu. jika Anda INSERT string 2012-04-17 12:03:23 menjadi DATETIME kolom, itulah nilai yang akan disimpan. Ini akan diubah secara internal menjadi stempel waktu yang mungkin akurat atau tidak (lihat di bawah), tetapi ketika Anda menanyakan nilai lagi, Anda akan mendapatkan nilai yang sama kembali; perjalanan pulang pergi transparan.

Masalah dapat terjadi jika Anda mencoba melakukan perhitungan waktu di dalam SQL. Yaitu. setiap operasi yang memerlukan SQL untuk memperhitungkan zona waktu dan/atau waktu server. Misalnya, menggunakan NOW() . Untuk salah satu operasi tersebut, zona waktu dan/atau waktu server harus diatur dengan benar. Lihat Masalah Zona Waktu .

Jika itu tidak menjadi perhatian Anda dan Anda hanya perlu melakukan perhitungan di PHP, Anda hanya perlu memastikan bahwa Anda tahu dari zona waktu mana ke zona waktu mana yang ingin Anda konversi. Untuk tujuan itu bisa nyaman untuk menstandardisasi semua waktu ke UTC, tetapi itu tidak perlu, karena konversi zona waktu dari zona waktu mana pun ke zona waktu lainnya juga berfungsi, selama Anda jelas tentang zona waktu mana Anda akan mengkonversi dan ke.

date_default_timezone_set('Asia/Tokyo'); // your reference timezone here

$date = date('Y-m-d H:i:s');

/* INSERT $date INTO database */;

$date = /* SELECT date FROM database */;

$usersTimezone = new DateTimeZone('America/Vancouver');
$l10nDate = new DateTime($date);
$l10nDate->setTimeZone($usersTimezone);
echo $l10nDate->format('Y-m-d H:i:s');


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Hapus semua baris dengan stempel waktu yang lebih lama dari x hari

  2. Setelah MySQL menginstal melalui Brew, saya mendapatkan kesalahan - Server berhenti tanpa memperbarui file PID

  3. Bagaimana cara menambahkan kolom menggunakan alter di mysql?

  4. Cara memfilter hasil SQL dalam relasi has-many-through

  5. Masalah dengan PHP dan Mysql UTF-8 (Karakter Khusus)