[英]Rails 4 Comparing Datetime in API
嗨,我在將日期時間與Rails 4 JSON API進行比較時遇到問題。
我將范圍與created_at屬性一起使用
scope :later_than, -> (date) { where('created_at > ?', date) }
為created_at返回的JSON看起來像
"created_at" = "2015-05-07T01:16:43.611Z"
發送相同的日期時間時,API日志和SQL看起來像
Parameters: {"later_than"=>"2015-05-06T21:16:43.611-0400"}
created_at > '2015-05-06T21:16:43.611-0400'
在控制台中
Object.first.created_at
=> Thu, 07 May 2015 01:16:43 UTC +00:00
Object.first.created_at > '2015-05-06T21:16:43.611-0400'
=> true
最后一個比較應該為false,但相反為true,並且作用域無法正常工作。
記錄時
Object.first.created_at - '2015-05-06T21:16:43.611-0400'.to_datetime
=> 0.000402
所以發生的是:
因此,當向API發送相同的日期時間時,微秒將被設置為0,因此比較無法按預期進行。
有沒有辦法告訴Rails:比較日期時間和毫秒精度?
Message.first.created_at
等於Thu, 07 May 2015 01:16:43 UTC +00:00
嗎? (您在那里有Object.first.created_at
),因為如果是,則控制台表達式的行為正確且應為true。
你嘗試過這樣的事情嗎?
Object.first.created_at > Time.parse('2015-05-06T21:16:43.611-0400')
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.