instance method +

Ruby on Rails 8.0.4

Since v2.2.3

Available in: v2.2.3 v2.3.18 v3.0.20 v3.1.12 v3.2.22.5 v4.0.13 v4.1.16 v4.2.9 v5.2.8.1 v6.0.6 v6.1.7.10 v7.0.10 v7.1.6 v7.2.3 v8.0.4 v8.1.2

Signature

+(other)

Adds an interval of time to the current object’s time and returns that value as a new TimeWithZone object.

Time.zone = 'Eastern Time (US & Canada)' # => 'Eastern Time (US & Canada)'
now = Time.zone.now # => Sun, 02 Nov 2014 01:26:28.725182881 EDT -04:00
now + 1000          # => Sun, 02 Nov 2014 01:43:08.725182881 EDT -04:00

If we’re adding a Duration of variable length (i.e., years, months, days), move forward from #time, otherwise move forward from #utc, for accuracy when moving across DST boundaries.

For instance, a time + 24.hours will advance exactly 24 hours, while a time + 1.day will advance 23-25 hours, depending on the day.

now + 24.hours      # => Mon, 03 Nov 2014 00:26:28.725182881 EST -05:00
now + 1.day         # => Mon, 03 Nov 2014 01:26:28.725182881 EST -05:00

Parameters

other req
Source
# File activesupport/lib/active_support/time_with_zone.rb, line 298
    def +(other)
      if duration_of_variable_length?(other)
        method_missing(:+, other)
      else
        begin
          result = utc + other
        rescue TypeError
          result = utc.to_datetime.since(other)
          ActiveSupport.deprecator.warn(
            "Adding an instance of #{other.class} to an instance of #{self.class} is deprecated. This behavior will raise " \
            "a `TypeError` in Rails 8.1."
          )
          result.in_time_zone(time_zone)
        end
        result.in_time_zone(time_zone)
      end
    end

Defined in activesupport/lib/active_support/time_with_zone.rb line 298 · View on GitHub · Improve this page · Find usages on GitHub

Defined in ActiveSupport::TimeWithZone

Type at least 2 characters to search.

↑↓ navigate · open · esc close