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

Lưu trữ các giá trị Ngày / Giờ cụ thể cho người dùng ở các múi giờ khác nhau

Vì bạn đang nói về việc lên lịch cho tương lai thời gian, lưu trữ chỉ UTC không nhất thiết là cách tiếp cận tốt nhất.

Hãy nhớ rằng các quy tắc múi giờ có thể (và thực hiện) thay đổi. Nếu bạn áp dụng bản cập nhật cho dữ liệu múi giờ của mình (trong PHP, quá trình này được thực hiện với timezonedb của PECL gói), thì bất kỳ dữ liệu nào bạn đã chuyển đổi sang UTC đều có thể không hợp lệ.

Giải pháp tốt hơn là lưu trữ nhiều giá trị:

  • Ngày và giờ địa phương ban đầu

  • Múi giờ gốc (ví dụ:"America/New_York" )

  • Ngày và giờ UTC, được chuyển đổi từ các giá trị địa phương

Khi bạn muốn xem đã đến lúc chạy tác vụ hay chưa, bạn phải so sánh ngày và giờ UTC hiện tại với giá trị UTC được lưu trữ.

Khi bạn áp dụng cập nhật múi giờ, bạn loại bỏ các giá trị UTC đã chuyển đổi trước đó cho tất cả các mục nhập trong tương lai và tính toán lại các giá trị mới dựa trên dữ liệu đã cập nhật.

Nếu bạn không làm điều này, thì bạn đang đánh mất ý định mà người dùng đã cung cấp ban đầu. Và nếu bạn không cập nhật dữ liệu múi giờ của mình, thì hệ thống của bạn sẽ không nhận biết được những thay đổi khác nhau đang diễn ra trên khắp thế giới, chẳng hạn như những thay đổi được thực hiện ở Ai Cập vào đầu năm nay hoặc những thay đổi đến vào tháng 10 đối với Nga.

Điểm cuối cùng - Nếu được triển khai đúng cách, múi giờ của máy chủ của bạn sẽ không thành vấn đề. So sánh UTC với UTC.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. kết nối AngularJS với mysql bằng dịch vụ PHP của tôi?

  2. SQL Injection thành công mặc dù PHP Magic Quotes

  3. Dấu ngoặc kép, dấu ngoặc kép và Dấu ngoặc kép trong MySQL

  4. Tuyên bố chuẩn bị trước của MySQL - Cách lặp qua

  5. ALTER TABLE để thêm khóa chính tổng hợp