Module | ActiveSupport::CoreExtensions::DateTime::Calculations
In: | lib/active_support/core_ext/date_time/calculations.rb

Enables the use of time calculations within DateTime itself

### Methods

advance ago at_beginning_of_day at_midnight beginning_of_day change compare_with_coercion end_of_day future? getutc in midnight past? seconds_since_midnight since utc utc? utc_offset

### Classes and Modules

Module ActiveSupport::CoreExtensions::DateTime::Calculations::ClassMethods

### Public Instance methods

advance(options)

Uses Date to provide precise Time calculations for years, months, and days. The `options` parameter takes a hash with any of these keys: `:years`, `:months`, `:weeks`, `:days`, `:hours`, `:minutes`, `:seconds`.

ago(seconds)

Returns a new DateTime representing the time a number of seconds ago Do not use this method in combination with x.months, use months_ago instead!

at_beginning_of_day()

Alias for beginning_of_day

at_midnight()

Alias for beginning_of_day

beginning_of_day()

Returns a new DateTime representing the start of the day (0:00)

change(options)

Returns a new DateTime where one or more of the elements have been changed according to the `options` parameter. The time options (hour, minute, sec) reset cascadingly, so if only the hour is passed, then minute and sec is set to 0. If the hour and minute is passed, then sec is set to 0.

compare_with_coercion(other)

Layers additional behavior on DateTime#<=> so that Time and ActiveSupport::TimeWithZone instances can be compared with a DateTime

end_of_day()

Returns a new DateTime representing the end of the day (23:59:59)

future?()

Tells whether the DateTime object‘s datetime lies in the future

getutc()

Alias for utc

in(seconds)

Alias for since

midnight()

Alias for beginning_of_day

past?()

Tells whether the DateTime object‘s datetime lies in the past

seconds_since_midnight()

Seconds since midnight: DateTime.now.seconds_since_midnight

since(seconds)

Returns a new DateTime representing the time a number of seconds since the instance time Do not use this method in combination with x.months, use months_since instead!

utc()

Adjusts DateTime to UTC by adding its offset value; offset is set to 0

Example:

      DateTime.civil(2005, 2, 21, 10, 11, 12, Rational(-6, 24))       # => Mon, 21 Feb 2005 10:11:12 -0600
      DateTime.civil(2005, 2, 21, 10, 11, 12, Rational(-6, 24)).utc   # => Mon, 21 Feb 2005 16:11:12 +0000

utc?()

Returns true if offset == 0

utc_offset()

Returns the offset value in seconds

[Validate]