instance method
+
Ruby on Rails 8.0.4
Since v2.2.3Signature
+(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
-
otherreq
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