datetimeという標準のPost.first.created_at
があるとします。日付をレールで比較する
Post.first.created_at > Time.parse("2009-06-03 16:57:45.608000 -04:00")
編集:両方のフィールドが日付時刻、ない日付ある私のような何かをすることによってフォーマット2009-06-03 16:57:45.608000 -04:00
の日時とその直接比較することができます。
datetimeという標準のPost.first.created_at
があるとします。日付をレールで比較する
Post.first.created_at > Time.parse("2009-06-03 16:57:45.608000 -04:00")
編集:両方のフィールドが日付時刻、ない日付ある私のような何かをすることによってフォーマット2009-06-03 16:57:45.608000 -04:00
の日時とその直接比較することができます。
はい、あなたは日付例えば:
irb(main):018:0> yesterday = Date.new(2009,6,13)
=> #<Date: 4909991/2,0,2299161>
irb(main):019:0> Date.today > yesterday
=> true
を比較する比較演算子を使用することができますしかし、あなたは、日時に日付を比較しようとしていますか?
これが当てはまる場合は、datetimeを日付に変換してから比較したいと思うでしょう。
こちらがお役に立てば幸いです。
はい、created_at
ActiveRecordの日付/時間フィールドの値と、通常のDateTime
オブジェクト(あなたが持っている文字列を解析できるようなもの)を直接比較することができます。
create_table "values", :force => true do |t|
[...]
t.datetime "created_at"
end
N.B.:created_atとフィールドは次のように定義されて
imac:trunk luca$ script/console
Loading development environment (Rails 2.3.2)
>> Value.first.created_at
=> Fri, 12 Jun 2009 08:00:45 CEST 02:00
>> Time.parse("2009-06-03 16:57:45.608000 -04:00")
=> Wed Jun 03 22:57:45 0200 2009
>> Value.first.created_at > Time.parse("2009-06-03 16:57:45.608000 -04:00")
=> true
:私はのcreated_at datetimeオブジェクトを持つ値オブジェクトを持っているプロジェクトで
Post.first.created_at.to_time > Time.parse("2009-06-03 16:57:45.608000 -04:00")
や日付を解析:あなたのフィールドは、日付とない日時であれば、あなたは時間に変換する必要があり
:Post.first.created_at > Date.parse("2009-06-03 16:57:45.608000 -04:00")
そうでなければ、買ってあげます
ArgumentError: comparison of Date with Time failed
ちょうど注意:レール独自のdatetimeオブジェクトを他と比較すると、予期しない結果が生じることがあります。特に下記... 'p.created_at#Fri、2015年8月28日21:45:14 UTC +00:00' ' p.updated_at#金曜日、2015年8月28日21:45:14 UTC +00:00 ' ' p.created_at == p.updated_at#false' これを行う必要があります... 'p.created_at.to_i == p.updated_at.to_i#true' 詳細はこちら:http:// stackoverflow .com/questions/19599792/comparison-identical-datetime-objects-in-ruby-why-these-two-datetime-nows – bwest87