2011-02-14 13 views
21

मैं उदाहरण दूँगी के बीच अंतर यह स्वयं के लिए बोलते हैं:रूबी, रेल और दो तिथियों

ruby-1.9.2-p0 > DateTime.now 
=> Mon, 14 Feb 2011 20:02:49 +0100 
ruby-1.9.2-p0 > User.first.created_at 
=> Tue, 04 May 2010 07:03:24 CEST +02:00 
ruby-1.9.2-p0 > DateTime.now-User.first.created_at 
TypeError: expected numeric or date 
    from /Users/Jacob/.rvm/rubies/ruby-1.9.2-p0/lib/ruby/1.9.1/date.rb:1356:in `-' 
    from /Users/Jacob/.rvm/gems/[email protected]_template/gems/activesupport-3.0.3/lib/active_support/core_ext/date/calculations.rb:98:in `minus_with_duration' 
    from (irb):47 
    from /Users/Jacob/.rvm/gems/[email protected]_template/gems/railties-3.0.3/lib/rails/commands/console.rb:44:in `start' 
    from /Users/Jacob/.rvm/gems/[email protected]_template/gems/railties-3.0.3/lib/rails/commands/console.rb:8:in `start' 
    from /Users/Jacob/.rvm/gems/[email protected]_template/gems/railties-3.0.3/lib/rails/commands.rb:23:in `<top (required)>' 
    from script/rails:6:in `require' 
    from script/rails:6:in `<main>' 
ruby-1.9.2-p0 > 

क्या?!?

उत्तर

32

.created_at एक ActiveSupport::TimeWithZone वस्तु देता है।

DateTime.now - User.first.created_at.to_datetime 
14

प्रयास करें इसके बजाय आप

Time.now - User.first.created_at 

इस का उपयोग कर सकते हैं और अपने पहले उपयोगकर्ता निर्माण के समय के बीच सेकंड की संख्या रिपोर्ट करेंगे।

संबंधित मुद्दे