कृपया मुझे क्षमा करें यदि यह कोई नोब मुद्दा है:रुबी और मोंगोआईड के साथ सही समय पर कैसे बचाएं?
मेरे पास एक ऐसा ऐप है जहां उपयोगकर्ता अपनी प्रोफ़ाइल में अपना टाइमज़ोन सेट कर सकते हैं।
जब कोई व्यक्ति आपको लाइनअप (एप्लिकेशन विशिष्ट शब्दावली), मैं निम्नलिखित है जोड़ता है:
Lineup.create({
:date => time.gmtime,
:uid => user._id,
:pid => product._id
})
यह (सिद्धांत में) के रूप में की तारीख को बचाने चाहिए:
time = ActiveSupport::TimeZone.new(user.timezone).parse(
"Wednesday, 26 October, 2011 13:30:00"
)
# This outputs: 2011-10-26 13:30:00 +0200 - valid according to the user selected TZ
मैं तो लाइनअप को बचाने जीएमटाइम, लेकिन मुझे रिकॉर्ड देखने पर निम्नलिखित मिलते हैं:
{
"_id": ObjectId("4e9c6613e673454f93000002"),
"date": "Wed, 26 Oct 2011 13: 30: 00 +0200",
"uid": "4e9b81f6e673454c8a000001",
"pid": "4e9c6613e673454f93000001",
"created_at": "Mon, 17 Oct 2011 19: 29: 55 +0200"
}
जैसा कि आप देख सकते हैं कि दिनांक फ़ील्ड wr है ओएनजी - यह अभी भी उपयोगकर्ता टाइमज़ोन को बनाए रखता है, यह जीएमटी होना चाहिए, समय-समय पर विशिष्ट नहीं होना चाहिए।
अगर मैं उत्पादन time.gmtime, मैं सही समय (कि बचाया जाना चाहिए) मिलती है:
2011-10-26 11:30:00 UTC (correct)
कोई भी विचार कैसे जीएमटी तारीख को बचाने के लिए इतना है कि यह वास्तव में जीएमटी तारीख की बचत होती है?
यह मोंटॉयड के वर्तमान संस्करणों में भी डेटटाइम के साथ काम करता है (मैं 2.4.7 पर हूं)। Https://github.com/mongoid/mongoid/issues/1135 देखें –