2010-09-27 6 views
5

Tôi sẽ chuyển đổi tất cả ngày & thời gian nhập bởi người dùng (giờ địa phương) sang UTC và lưu trữ trong cơ sở dữ liệu. Khi hiển thị lại, tôi sẽ chuyển đổi thời gian UTC thành múi giờ của họ được đặt trong hồ sơ của họ. Liệu nó có tốt không?Lưu trữ ngày giờ UTC trong cơ sở dữ liệu

+5

Điều này rất tốt. –

+0

@Mark Ransom: Tại sao không đăng câu trả lời thích hợp này để câu hỏi có thể bị đóng? –

+0

@Ates, một câu trả lời thích hợp sẽ cần một số biện minh và cẩn thận mà tôi không chuẩn bị để cung cấp. Tôi chỉ không thể chống lại việc mở cửa đã được đưa ra. –

Trả lời

3

Tôi nghĩ nó đủ tốt. Ngoài việc lưu trữ múi giờ của người dùng trong tiểu sử, bạn cũng có thể cho phép ứng dụng khách (ví dụ: javascript) chuyển đổi thời gian UTC theo múi giờ của máy tính người dùng.

1

Miễn là bạn có thể chuyển đổi thành/từ bất kỳ múi giờ nào từ bản ghi DB được lưu trữ của mình, đó là tất cả những gì bạn cần.

Những gì bạn đã mô tả sẽ hoạt động.

1

Lưu ý một số MySQL documentation liên quan đến hoạt động TimeZone & server/client:

múi giờ

mỗi kết nối.
Mỗi khách hàng kết nối có cài đặt múi giờ riêng, được đưa ra bởi biến time_zone phiên. Ban đầu, biến phiên có giá trị của nó từ biến time_zone toàn cầu, nhưng máy khách có thể thay đổi múi giờ riêng của mình bằng câu lệnh sau:
mysql SET time_zone = timezone;

Vì vậy, thông thường, trong giải pháp đề xuất của bạn, tất cả đều đúng, nhưng đừng để máy chủ thực sự hoặc múi giờ của khách hàng thay đổi khiến bạn mất cảnh giác.