약간의 멍청한 문제인 경우 실례합니다.Ruby와 MongoId를 사용하여 시간대를 올바르게 저장하는 방법은 무엇입니까?
사용자가 자신의 프로필에 자신의 시간대를 설정할 수있는 앱이 있습니다.
사람이, 나는 다음과 같은 않는 라인업 (응용 프로그램 특정 용어) 추가:이 (이론적으로)로 날짜를 저장해야
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
내가 다음 라인업을 저장을 gmtime, 그러나 나는 기록을 볼 때 다음을 얻는다 :
{
"_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 ong - 여전히 사용자 시간대를 유지해야합니다. GMT 여야하며 시간대와 관련이 없습니다.
는 I 출력 time.gmtime 경우에, 나는 (즉이 저장 될) 정확한 시간을 얻을 :2011-10-26 11:30:00 UTC (correct)
모든 아이디어를 어떻게 실제로 GMT 날짜를 절약 할 수 있도록 GMT 날짜를 저장하는 방법?
이것은 현재 몽고이 버전 (2.4.7 버전)에서도 DateTime과 호환됩니다. https://github.com/mongoid/mongoid/issues/1135를 참조하십시오. –