मैं समय क्षेत्र को सही तरीके से संभालने के लिए हमारे रेल 2.3 एप्लिकेशन को परिवर्तित करने के लिए देख रहा हूं (फिलहाल सब कुछ यूटीसी में है जो सही नहीं है, लेकिन सुविधाजनक है!)।रेल अनुप्रयोग के लिए MySQL डीबी में टाइमज़ोन के साथ दिनांकों को सही ढंग से संग्रहीत करना
मैं environment.rb में ये सेटिंग हैं:
config.active_record.default_timezone = :utc
config.time_zone = "UTC"
आगे बढ़ते हुए, हमारे अनुप्रयोग में प्रत्येक अनुरोध मैं समय क्षेत्र स्थापित करने के लिए निम्न सेटिंग बनाने पर योजना पर:
Time.zone = user.time_zone
कहाँ user.time_zone
उनकी चुनी वरीयता है (उदाहरण के लिए US Pacific Time
)।
यह ऐप में ठीक काम करता है, लेकिन मेरा प्रश्न संबंधित है कि रेलवे तब MySQL डीबी में स्टोर करता है। यदि उपयोगकर्ता 1 जून 200 9 की तारीख चुनता है, तो यह यूटीसी में डेटाबेस में DATETIME
फ़ील्ड में संग्रहीत हो जाता है लेकिन समय क्षेत्र ऑफसेट के साथ संग्रहीत हो जाता है। उदाहरण के लिए, यदि उपयोगकर्ता ने GMT+6
समय क्षेत्र चुना है, तो 1 जून 200 9 की चुनी हुई तिथि डेटाबेस में 2009-06-01 06:00:00 UTC
के रूप में समाप्त होती है।
मुझे उम्मीद है कि यह डेटाबेस में 2009-06-01 00:00:00 UTC
के रूप में संग्रहीत किया जाएगा। क्या मेरी सोच सही है या रेल कुछ अप्रत्याशित कर रही है?
क्या आपको बस उपयोगकर्ता के समय क्षेत्र में तिथियां प्रदर्शित करने की आवश्यकता है, या विशेष रूप से उस समय क्षेत्र में इसे स्टोर करना महत्वपूर्ण है? –
क्रिस मैं इसे यूटीसी में स्टोर करना चाहता हूं और केवल उपयोगकर्ता के समय क्षेत्र में तिथियां प्रदर्शित करना चाहता हूं – Olly