Vì vậy, tôi có một trang web có tính năng nhận xét trong đó dấu thời gian của nhận xét được lưu trữ trong cơ sở dữ liệu MySQL. Từ những gì tôi hiểu, dấu thời gian được chuyển thành UTC khi được lưu trữ, sau đó chuyển đổi về múi giờ mặc định khi được truy xuất. Trong trường hợp của tôi, máy chủ của tôi nằm trong múi giờ ban ngày trung tâm (CDT).PHP & MySQL: Chuyển đổi TIMESTAMP được lưu trữ thành múi giờ địa phương của người dùng
Tôi có kế hoạch nhận múi giờ từ mỗi người dùng thông qua biểu mẫu nhập. Tôi chỉ muốn biết cách chuyển đổi giá trị TIMESTAMP vào múi giờ của người dùng.
- Trước tiên, tôi có chuyển đổi từ UTC thành múi giờ địa phương không? Hoặc CDT đến múi giờ địa phương?
- Thứ hai, tôi sẽ làm thế nào trong PHP? Tôi chỉ cần làm:
$userTimezone = new DateTimeZone($userSubmittedTimezoneString); $myDateTime = new DateTime($storedTimestamp, $userTimezone);
... hoặc điều đó không đúng?
không, dấu thời gian được lưu trữ như trong mysql, nhưng không có bất kỳ dữ liệu TZ nào. nếu bạn chèn "3pm, CST" vào db, sau đó 3 giờ chiều, cst là những gì được lưu trữ. Bạn cần chuyển đổi sang UTC trước khi chèn, do đó bạn có cơ sở không thay đổi chung để chuyển đổi sang các TZ khác. –