Tôi biết có vài chục câu hỏi tương tự trên mạng, chưa kể đến vô số bài viết trên Interwebs nói chung, nhưng tôi vẫn gặp khó khăn khi hiểu Rails hoạt động như thế nào với Time Khu nội bộ.Giúp grokking Time và Time Zones trong Rails 3
Tôi hiện có config.time_zone = 'Eastern Time (US & Canada)'
được định cấu hình trong tệp ứng dụng của mình vì đó là nơi tôi và các quản trị viên dự án khác đang sử dụng. Công ty sở hữu trang web có trụ sở tại CA, vì vậy họ sẽ ở Thái Bình Dương. Ứng dụng này có khán giả toàn cầu và trong khi chúng tôi chưa làm như vậy, chúng tôi cuối cùng sẽ triển khai các múi giờ ưa thích của người dùng.
Vì vậy, câu hỏi hiện tại của tôi:
Tôi biết Rails kỳ diệu biến đổi các giá trị cột datetime đến và đi từ UTC khi lưu trữ và lấy ra tương ứng, nhưng cách thích hợp để xem phiên bản địa phương của một thuộc tính datetime nhất định là những gì ?
Khi nào một người sử dụng
Time.now
so vớiTime.zone.now
so vớiTime.now.in_time_zone
so vớiDateTime.now
so vớiDateTime.now.in_time_zone
?Cách thích hợp để so sánh thuộc tính datetime đã cho với các phương pháp được liệt kê ở trên hoặc một số thời gian cụ thể khác liên quan đến múi giờ hiện được định cấu hình? Với UTC?
Chúng tôi sẽ có một số thông tin nhạy cảm về thời gian như bài viết cần được xuất bản vào một thời điểm cụ thể theo múi giờ của ứng dụng, vì vậy làm cách nào để ứng dụng thực hiện so sánh đó trong múi giờ đã chỉ định của chúng tôi. một cấu hình (giả sử một người sử dụng các múi giờ được thực hiện?)
(mới Câu hỏi) Điều gì sẽ xảy ra nếu tôi thay đổi
config.time_zone
-UTC
vào một ngày sau? Tôi có phải đặt lại tất cả thời gian của tôi trong cơ sở dữ liệu hay không, nếu không nó ảnh hưởng đến thời gian cũ?
Đây là một câu hỏi hay; Tôi cũng chưa tìm được tài liệu hay về việc triển khai đúng múi giờ. Tôi sẽ thêm hai câu hỏi vào danh sách: '6. Rails có nhạy cảm với Daylight Savings Time hay không và/hoặc làm thế nào để bạn thực hiện hỗ trợ múi giờ nhạy cảm? Và '7. Có một sự khác biệt giữa cách Rails xử lý các múi giờ và DST cho các cột ngày so với các cột datetime? 'Và có lẽ' 8. Cơ sở dữ liệu này là thuyết bất khả tri hay nó cần phải được xử lý khác với SQLite so với MySQL so với những người khác? ' – Clay
@Clay: Bạn có thể tìm thêm bất kỳ thông tin nào về những câu hỏi này không? Tôi vẫn đang tìm kiếm thêm thông tin về chủ đề này. –
Tôi chưa tìm thấy nhiều thông tin tốt. Làm việc với các múi giờ dễ dàng là phần khó chịu nhất và tốn thời gian của ứng dụng sở thích mà tôi đang làm việc. Đã có câu trả lời hay cho câu hỏi này mà tôi đã hỏi: http://stackoverflow.com/questions/8466903/rails-3-1-querying-postgres-for-records-within-a-time-range nhưng nó chỉ phù hợp với postgres. – Clay