나는 시애틀 여단 그룹에서이 대답을 얻었다 Ruby를 통해 직접 또는 Rails로 래핑 된 자신의 날짜 객체. 내가 아는 한, 누군가 나를 교정 해주세요. Mongo 은 신기원 이후의 시간을 밀리 세컨드 단위로 UTC 시간으로 저장합니다. 따라서 키를 MongoMapper에서 : date 매핑과 함께 정의하면, Ruby에 Time 객체가 래핑됩니다.
따라서 MongoMapper가 만든 이 아니므로 Mongo 내부에 날짜를 저장하려면 UTC로 Time 개체를 만들어야합니다. MongoMapper에는 사용할 수있는 to_mongo라는 Date 믹스 인 메서드가 있습니다.
>> Time.now.utc
=> Fri Jan 28 03:47:50 UTC 2011
>> require 'date'
=> true
>> date = Date.today
=> #<Date: 4911179/2,0,2299161>
>> Time.utc(date.year, date.month, date.day)
=> Thu Jan 27 00:00:00 UTC 2011
>> require 'rubygems'
=> true
>> require 'mongo_mapper'
=> true
>> Date.to_mongo(date)
=> Thu Jan 27 00:00:00 UTC 2011
시간 변경을 조심하십시오.
>> Date.to_mongo(Time.now)
=> Thu Jan 27 00:00:00 UTC 2011
>> Date.to_mongo(Time.now.utc)
=> Fri Jan 28 00:00:00 UTC 2011
행운을 빈다.
그리고 그것은 나를 위해 작동
Date.to_mongo(start_date)
를 사용하여 ===
.
출처
2011-01-28 05:15:16
Mei
시도 Time.new (시작일), 시작일은 어디에서 왔습니까? 방법이야? – andrea
Date에서 UTC Time으로 start_date를 변환하는 것을 포기했습니다. start_date (a Date)를 start_date.to_s를 사용하여 문자열로 저장하려고합니다. – Mei