- #
- A
- B
- C
- D
- E
- F
- I
- M
- N
- P
- R
- S
- T
- W
- X
- Y
DAYS_INTO_WEEK | = | { :monday => 0, :tuesday => 1, :wednesday => 2, :thursday => 3, :friday => 4, :saturday => 5, :sunday => 6 } |
DATE_FORMATS | = | { :short => "%e %b", :long => "%B %e, %Y", :db => "%Y-%m-%d", :number => "%Y%m%d", :long_ordinal => lambda { |date| date.strftime("%B #{ActiveSupport::Inflector.ordinalize(date.day)}, %Y") }, # => "April 25th, 2007" :rfc822 => "%e %b %Y" } |
Returns Time.zone.today when
Time.zone
or config.time_zone
are set, otherwise
just returns Date.today.
Returns a new Date representing the date 1 day after today (i.e. tomorrow’s date).
Returns a new Date representing the date 1 day ago (i.e. yesterday’s date).
Backported from 1.9. The one in 1.8 leads to incorrect #next_month and friends for dates where the calendar reform is involved. It additionally prevents an infinite loop fixed in r27013.
# File activesupport/lib/active_support/core_ext/date/calculations.rb, line 16 def >>(n) y, m = (year * 12 + (mon - 1) + n).divmod(12) m, = (m + 1) .divmod(1) d = mday until jd2 = self.class.valid_civil?(y, m, d, start) d -= 1 raise ArgumentError, 'invalid date' unless d > 0 end self + (jd2 - jd) end
Duck-types as a Date-like class. See Object#acts_like?.
Provides precise Date calculations for years,
months, and days. The options
parameter takes a hash with any
of these keys: :years
, :months
,
:weeks
, :days
.
# File activesupport/lib/active_support/core_ext/date/calculations.rb, line 108 def advance(options) options = options.dup d = self d = d >> options.delete(:years) * 12 if options[:years] d = d >> options.delete(:months) if options[:months] d = d + options.delete(:weeks) * 7 if options[:weeks] d = d + options.delete(:days) if options[:days] d end
Returns a new ; DateTime objects will have time set to 0:00DateTime representing the start of the month (1st of the month; DateTime objects will have time set to 0:00)
Returns a new Date/DateTime representing the start of the quarter (1st of january, april, july, october; DateTime objects will have time set to 0:00)
Returns a new Date
/DateTime
representing the
start of this week. Week is assumed to start on start_day
,
default is :monday
. DateTime
objects have their
time set to 0:00.
Returns a new Date/DateTime representing the start of the year (1st of january; DateTime objects will have time set to 0:00)
Returns a new Date where one or more of the
elements have been changed according to the options
parameter.
Examples:
Date.new(2007, 5, 12).change(:day => 1) # => Date.new(2007, 5, 1) Date.new(2007, 5, 12).change(:year => 2005, :month => 1) # => Date.new(2005, 1, 12)
Returns number of days to start of this week. Week is assumed to start on
start_day
, default is :monday
.
Returns a new Date/DateTime representing the end of the month (last day of the month; DateTime objects will have time set to 0:00)
Returns a new Date/DateTime representing the end of the quarter (last day of march, june, september, december; DateTime objects will have time set to 23:59:59)
Returns a new Date
/DateTime
representing the end
of this week. Week is assumed to start on start_day
, default
is :monday
. DateTime
objects have their time set
to 23:59:59.
Returns a new Time representing the end of the year (31st of december; DateTime objects will have time set to 23:59:59)
Returns true if the Date object’s date lies in the future.
Returns a new Date
/DateTime
representing the
start of this week. Week is assumed to start on a Monday.
DateTime
objects have their time set to 0:00.
Returns a new Date/DateTime representing the time a number of specified months ago.
Returns a new Date/DateTime representing the time a number of specified months in the future.
Shorthand for #months_since(1)
Returns a new Date/DateTime representing the start of the given day in next week (default is :monday).
Shorthand for #years_since(1)
Returns true if the Date object’s date lies in the past. Otherwise returns false.
Shorthand for #months_ago(1)
Returns a new Date
/DateTime
representing the
given day
in the previous week. Default is
:monday
. DateTime
objects have their time set to
0:00.
Shorthand for #years_ago(1)
Overrides the default inspect method with a human readable one, e.g., “Mon, 21 Feb 2005”
Converts Date to a Time (or DateTime if necessary) with the time portion set to the beginning of the day (0:00) and then adds the specified number of seconds
Returns a new Date
/DateTime
representing the end
of this week. Week is assumed to start on a Monday. DateTime
objects have their time set to 23:59:59.
Convert to a formatted string. See DATE_FORMATS for predefined formats.
This method is aliased to to_s
.
Examples
date = Date.new(2007, 11, 10) # => Sat, 10 Nov 2007 date.to_formatted_s(:db) # => "2007-11-10" date.to_s(:db) # => "2007-11-10" date.to_formatted_s(:short) # => "10 Nov" date.to_formatted_s(:long) # => "November 10, 2007" date.to_formatted_s(:long_ordinal) # => "November 10th, 2007" date.to_formatted_s(:rfc822) # => "10 Nov 2007"
Adding your own time formats to #to_formatted_s
You can add your own formats to the Date::DATE_FORMATS hash. Use the format name as the hash key and either a strftime string or Proc instance that takes a date argument as the value.
# config/initializers/time_formats.rb Date::DATE_FORMATS[:month_and_year] = "%B %Y" Date::DATE_FORMATS[:short_ordinal] = lambda { |date| date.strftime("%B #{date.day.ordinalize}") }
Converts a Date instance to a Time, where the time is set to the beginning of the day. The timezone can be either :local or :utc (default :local).
Examples
date = Date.new(2007, 11, 10) # => Sat, 10 Nov 2007 date.to_time # => Sat Nov 10 00:00:00 0800 2007 date.to_time(:local) # => Sat Nov 10 00:00:00 0800 2007 date.to_time(:utc) # => Sat Nov 10 00:00:00 UTC 2007
Returns true if the Date object’s date is today.
Convenience method which returns a new Date/DateTime representing the time 1 day since the instance time
Returns a new Date/DateTime representing the time a number of specified weeks ago.
Returns a new Date/DateTime representing the time a number of specified years ago.
Returns a new Date/DateTime representing the time a number of specified years in the future.