Ruby on Rails 5.2 - ActionView::Helpers::DateHelper

मॉड्यूल ActionView :: सहायक :: DateHelper




ruby

मॉड्यूल ActionView :: सहायक :: DateHelper

एक्शन दृश्य Date

Date सहायक मुख्य रूप से विभिन्न प्रकार की तिथियों और समय या दिनांक और समय तत्वों के लिए चयन / विकल्प टैग बनाता है। सभी प्रकार के चुनिंदा प्रकार कई सामान्य विकल्प साझा करते हैं जो इस प्रकार हैं:

  • :prefix - चुनिंदा नामों के लिए प्रयुक्त "तिथि" के डिफ़ॉल्ट उपसर्ग को अधिलेखित करता है। तो "जन्मदिन" को निर्दिष्ट करते हुए तारीख [महीने] के बजाय जन्मदिन [माह] दिया जाएगा, अगर select_month विधि को पारित किया गया।

  • :include_blank - सही पर सेट करें यदि खाली तारीख सेट करना संभव हो।

  • :discard_type अगर आप चयन नाम के प्रकार को छोड़ना चाहते हैं, तो त्याग करना यदि सही पर सेट किया गया है, तो select_month विधि का उपयोग दिनांक [माह] के बजाय केवल "दिनांक" (जो कि :prefix का उपयोग करके अधिलेखित किया जा सकता है) किया जाएगा।

स्थिरांक

MINUTES_IN_QUARTER_YEAR
MINUTES_IN_THREE_QUARTERS_YEAR
MINUTES_IN_YEAR

सार्वजनिक प्रवृत्ति के तरीके

date_select (object_name, विधि, विकल्प = {}, html_options = {}) स्रोत दिखाएं
# File actionview/lib/action_view/helpers/date_helper.rb, line 282
def date_select(object_name, method, options = {}, html_options = {})
  Tags::DateSelect.new(object_name, method, self, options, html_options).render
end

टेम्पलेट को सौंपी गई वस्तु पर निर्दिष्ट तिथि-आधारित विशेषता ( method द्वारा पहचाना गया) (ऑब्जेक्ट द्वारा पहचाना गया) पर पहुंचने के लिए पहले से चुने गए टैग (वर्ष, महीने और दिन के लिए एक) का एक सेट देता है।

विकल्प

  • :use_month_numbers - यदि आप महीने के नामों के बजाय माह संख्या (जैसे "फरवरी" के बजाय "2") का उपयोग करना चाहते हैं तो सही पर सेट करें।

  • :use_two_digit_numbers - यदि आप दो अंकों के महीने और दिन की संख्या (जैसे "फरवरी" के बजाय "02" और "08" के बजाय "08") प्रदर्शित करना चाहते हैं, तो सही पर सेट करें।

  • :use_short_month - यदि आप पूरे महीने के नामों के बजाय संक्षिप्त माह के नामों (जैसे "फरवरी" के बजाय "फ़रवरी") का उपयोग करना चाहते हैं, तो सही पर सेट करें।

  • :add_month_numbers - यदि आप दोनों महीने की संख्या और महीने के नाम (जैसे "फरवरी" के बजाय "2 - फरवरी") का उपयोग करना चाहते हैं तो सही पर सेट करें।

  • :use_month_names - अगर आप महीने के नामों को अनुकूलित करना चाहते हैं, तो 12 महीने के नाम के साथ एक सरणी पर सेट करें। नोट: आप इसके लिए रेल की i18n कार्यक्षमता का उपयोग कर सकते हैं।

  • :month_format_string - एक प्रारूप स्ट्रिंग पर सेट करें। स्ट्रिंग को पास कीज़ :number (पूर्णांक) और :name (स्ट्रिंग) मिलती हैं। एक प्रारूप स्ट्रिंग उदाहरण के लिए "% {name} (% <संख्या> 02d)" जैसा कुछ होगा। प्रारूप अनुक्रमों पर प्रलेखन के लिए Kernel.sprintf देखें।

  • :date_separator - दिनांक फ़ील्ड को अलग करने के लिए एक स्ट्रिंग निर्दिष्ट करता है। डिफ़ॉल्ट "" (यानी कुछ भी नहीं) है।

  • :time_separator - टाइम फ़ील्ड को अलग करने के लिए एक स्ट्रिंग निर्दिष्ट करता है। डिफ़ॉल्ट "" (यानी कुछ भी नहीं) है।

  • :datetime_separator - दिनांक और समय फ़ील्ड को अलग करने के लिए एक स्ट्रिंग निर्दिष्ट करता है। डिफ़ॉल्ट "" (यानी कुछ भी नहीं) है।

  • :start_year - वर्ष चयन के लिए प्रारंभ वर्ष सेट करें। यदि आप नया रिकॉर्ड बना रहे हैं तो Default Date.today.year - 5 । मौजूदा रिकॉर्ड को संपादित करते समय :start_year वर्तमान चयनित वर्ष माइनस 5 में चूक।

  • :end_year - वर्ष का चयन करने के लिए अंतिम वर्ष निर्धारित करें। यदि आप नया रिकॉर्ड बना रहे हैं, तो डिफ़ॉल्ट Date.today.year + 5 । मौजूदा रिकॉर्ड को संपादित करते समय :end_year मौजूदा चयनित वर्ष प्लस 5 के लिए :end_year चूक।

  • :discard_day - यदि आप एक दिन का चयन नहीं दिखाना चाहते हैं तो सही पर सेट करें। इसमें चुनिंदा क्षेत्र दिखाने के बजाय एक छिपे हुए क्षेत्र के रूप में दिन शामिल है। यह भी ध्यान दें कि यह अनुमानित दिन 31 फरवरी की तरह अमान्य तिथियां नहीं बनाने के लिए दिए गए महीने का पहला दिन है।

  • :discard_month - यदि आप एक महीने का चयन नहीं दिखाना चाहते हैं तो सही पर सेट करें। इसमें एक चयनित फ़ील्ड दिखाने के बजाय एक छिपे हुए फ़ील्ड के रूप में महीना शामिल है। यह भी ध्यान दें कि यह अव्यवस्थित रूप से सेट होता है: True_day को सत्य।

  • :discard_year - यदि आप एक वर्ष का चयन नहीं दिखाना चाहते हैं तो सही पर सेट करें। इसमें एक चुनिंदा क्षेत्र दिखाने के बजाय एक छिपे हुए क्षेत्र के रूप में वर्ष शामिल है।

  • :order - उस सरणी को सेट करें जिसमें उस :day को चुनने के लिए :day :month और :year हो, जिसमें चयनित फ़ील्ड दिखाए गए हों। यदि आप किसी भी प्रतीक को छोड़ते हैं, तो संबंधित चयन नहीं दिखाया जाएगा (जैसे कि जब आप discard_xxx: true सेट discard_xxx: true । संबंधित लोकेल में परिभाषित आदेश के लिए discard_xxx: true (जैसे: [वर्ष: वर्ष: माह, दिन] एन लोकेल में। रेल के साथ जहाज)।

  • :include_blank - प्रत्येक चयनित फ़ील्ड में एक रिक्त विकल्प शामिल करें ताकि खाली तिथियों को सेट करना संभव हो।

  • :default - प्रभावित तिथि सेट नहीं है या nil है, तो एक डिफ़ॉल्ट तिथि निर्धारित करें।

  • :selected - वास्तविक मूल्य को ओवरराइड करने वाली तिथि निर्धारित करें।

  • :disabled - यदि आप चाहते हैं कि चयनित फ़ील्ड को अक्षम के रूप में दिखाएँ तो सही पर सेट करें

  • :prompt - ट्रू (जेनेरिक प्रॉम्प्ट के लिए), प्रॉम्प्ट स्ट्रिंग या प्रॉम्प्ट स्ट्रिंग्स के हैश के लिए :year , :month :day , :day :hour , :minute और :second । इस विकल्प को सेट करना जेनेरिक प्रॉम्प्ट (डे, मंथ, ईयर, आवर, मिनट, सेकंड) या दिए गए प्रांप्ट स्ट्रिंग के साथ एक चुनिंदा विकल्प प्रस्तुत करता है।

  • :with_css_classes - स्ट्रिंग्स के सच्चे या हैश पर सेट करें। यदि आप चुनिंदा टैग के लिए सामान्य शैली असाइन करना चाहते हैं तो सही का उपयोग करें। यह स्वचालित रूप से कक्षाएं 'वर्ष', 'महीना', 'दिन', 'घंटा', 'मिनट' और 'दूसरा' निर्धारित करता है। स्ट्रिंग्स का एक हैश :year :month , :day , :day :hour , :minute :second दिए गए मान के साथ चयन प्रकार का विस्तार करेगा। सेट में प्रत्येक चयनित टैग को संशोधित करने के लिए html_options का उपयोग करें।

  • :use_hidden - यदि आप केवल छिपे हुए इनपुट टैग उत्पन्न करना चाहते हैं तो सही पर सेट करें।

अगर html_options हैश में कुछ भी पारित किया जाता है तो इसे सेट के हर चुनिंदा टैग पर लागू किया जाएगा।

ध्यान दें: अस्वीकृत चयन 1 को डिफ़ॉल्ट होगा। इसलिए यदि कोई महीने का चयन उपलब्ध नहीं है, तो जनवरी मान लिया जाएगा।

# Generates a date select that when POSTed is stored in the article variable, in the written_on attribute.
date_select("article", "written_on")

# Generates a date select that when POSTed is stored in the article variable, in the written_on attribute,
# with the year in the year drop down box starting at 1995.
date_select("article", "written_on", start_year: 1995)

# Generates a date select that when POSTed is stored in the article variable, in the written_on attribute,
# with the year in the year drop down box starting at 1995, numbers used for months instead of words,
# and without a day select box.
date_select("article", "written_on", start_year: 1995, use_month_numbers: true,
                                  discard_day: true, include_blank: true)

# Generates a date select that when POSTed is stored in the article variable, in the written_on attribute,
# with two digit numbers used for months and days.
date_select("article", "written_on", use_two_digit_numbers: true)

# Generates a date select that when POSTed is stored in the article variable, in the written_on attribute
# with the fields ordered as day, month, year rather than month, day, year.
date_select("article", "written_on", order: [:day, :month, :year])

# Generates a date select that when POSTed is stored in the user variable, in the birthday attribute
# lacking a year field.
date_select("user", "birthday", order: [:month, :day])

# Generates a date select that when POSTed is stored in the article variable, in the written_on attribute
# which is initially set to the date 3 days from the current date
date_select("article", "written_on", default: 3.days.from_now)

# Generates a date select that when POSTed is stored in the article variable, in the written_on attribute
# which is set in the form with today's date, regardless of the value in the Active Record object.
date_select("article", "written_on", selected: Date.today)

# Generates a date select that when POSTed is stored in the credit_card variable, in the bill_due attribute
# that will have a default day of 20.
date_select("credit_card", "bill_due", default: { day: 20 })

# Generates a date select with custom prompts.
date_select("article", "written_on", prompt: { day: 'Select day', month: 'Select month', year: 'Select year' })

सक्रिय रिकॉर्ड ऑब्जेक्ट के लिए मल्टी-पैरामीटर असाइनमेंट के लिए चयन तैयार किए जाते हैं।

नोट: यदि दिन को विकल्प के रूप में शामिल नहीं किया गया है, लेकिन माह है, तो यह सुनिश्चित करने के लिए दिन 1 पर सेट किया जाएगा कि सभी महीने के विकल्प मान्य हैं।

datetime_select (object_name, पद्धति, विकल्प = {}, html_options = {}) स्रोत दिखाएं
# File actionview/lib/action_view/helpers/date_helper.rb, line 354
def datetime_select(object_name, method, options = {}, html_options = {})
  Tags::DatetimeSelect.new(object_name, method, self, options, html_options).render
end

किसी निर्दिष्ट डेटाटाइम-आधारित विशेषता ( method द्वारा पहचाना गया) तक पहुँच के लिए पूर्व-चयनित चयनित टेम्पलेट ( object द्वारा पहचानी गई object ) पर एक चयनित टैग (सेट के लिए एक) का एक सेट लौटाता है।

अगर html_options हैश में कुछ भी पारित किया जाता है तो इसे सेट के हर चुनिंदा टैग पर लागू किया जाएगा।

# Generates a datetime select that, when POSTed, will be stored in the article variable in the written_on
# attribute.
datetime_select("article", "written_on")

# Generates a datetime select with a year select that starts at 1995 that, when POSTed, will be stored in the
# article variable in the written_on attribute.
datetime_select("article", "written_on", start_year: 1995)

# Generates a datetime select with a default value of 3 days from the current time that, when POSTed, will
# be stored in the trip variable in the departing attribute.
datetime_select("trip", "departing", default: 3.days.from_now)

# Generate a datetime select with hours in the AM/PM format
datetime_select("article", "written_on", ampm: true)

# Generates a datetime select that discards the type that, when POSTed, will be stored in the article variable
# as the written_on attribute.
datetime_select("article", "written_on", discard_type: true)

# Generates a datetime select with a custom prompt. Use <tt>prompt: true</tt> for generic prompts.
datetime_select("article", "written_on", prompt: {day: 'Choose day', month: 'Choose month', year: 'Choose year'})
datetime_select("article", "written_on", prompt: {hour: true}) # generic prompt for hours
datetime_select("article", "written_on", prompt: true) # generic prompts for all

सक्रिय रिकॉर्ड ऑब्जेक्ट के लिए मल्टी-पैरामीटर असाइनमेंट के लिए चयन तैयार किए जाते हैं।

दूरी_ऑफ_टाइम_इन_ पासवर्ड (from_time, to_time = 0, विकल्प = {}) स्रोत दिखाएं
# File actionview/lib/action_view/helpers/date_helper.rb, line 95
def distance_of_time_in_words(from_time, to_time = 0, options = {})
  options = {
    scope: :'datetime.distance_in_words'
  }.merge!(options)

  from_time = normalize_distance_of_time_argument_to_time(from_time)
  to_time = normalize_distance_of_time_argument_to_time(to_time)
  from_time, to_time = to_time, from_time if from_time > to_time
  distance_in_minutes = ((to_time - from_time) / 60.0).round
  distance_in_seconds = (to_time - from_time).round

  I18n.with_options locale: options[:locale], scope: options[:scope] do |locale|
    case distance_in_minutes
    when 0..1
      return distance_in_minutes == 0 ?
             locale.t(:less_than_x_minutes, count: 1) :
             locale.t(:x_minutes, count: distance_in_minutes) unless options[:include_seconds]

      case distance_in_seconds
      when 0..4   then locale.t :less_than_x_seconds, count: 5
      when 5..9   then locale.t :less_than_x_seconds, count: 10
      when 10..19 then locale.t :less_than_x_seconds, count: 20
      when 20..39 then locale.t :half_a_minute
      when 40..59 then locale.t :less_than_x_minutes, count: 1
      else             locale.t :x_minutes,           count: 1
      end

    when 2...45           then locale.t :x_minutes,      count: distance_in_minutes
    when 45...90          then locale.t :about_x_hours,  count: 1
      # 90 mins up to 24 hours
    when 90...1440        then locale.t :about_x_hours,  count: (distance_in_minutes.to_f / 60.0).round
      # 24 hours up to 42 hours
    when 1440...2520      then locale.t :x_days,         count: 1
      # 42 hours up to 30 days
    when 2520...43200     then locale.t :x_days,         count: (distance_in_minutes.to_f / 1440.0).round
      # 30 days up to 60 days
    when 43200...86400    then locale.t :about_x_months, count: (distance_in_minutes.to_f / 43200.0).round
      # 60 days up to 365 days
    when 86400...525600   then locale.t :x_months,       count: (distance_in_minutes.to_f / 43200.0).round
    else
      from_year = from_time.year
      from_year += 1 if from_time.month >= 3
      to_year = to_time.year
      to_year -= 1 if to_time.month < 3
      leap_years = (from_year > to_year) ? 0 : (from_year..to_year).count { |x| Date.leap?(x) }
      minute_offset_for_leap_year = leap_years * 1440
      # Discount the leap year days when calculating year distance.
      # e.g. if there are 20 leap year days between 2 dates having the same day
      # and month then the based on 365 days calculation
      # the distance in years will come out to over 80 years when in written
      # English it would read better as about 80 years.
      minutes_with_offset = distance_in_minutes - minute_offset_for_leap_year
      remainder                   = (minutes_with_offset % MINUTES_IN_YEAR)
      distance_in_years           = (minutes_with_offset.div MINUTES_IN_YEAR)
      if remainder < MINUTES_IN_QUARTER_YEAR
        locale.t(:about_x_years,  count: distance_in_years)
      elsif remainder < MINUTES_IN_THREE_QUARTERS_YEAR
        locale.t(:over_x_years,   count: distance_in_years)
      else
        locale.t(:almost_x_years, count: distance_in_years + 1)
      end
    end
  end
end

दो Time , Date या DateTime ऑब्जेक्ट्स या पूर्णांकों के बीच सेकंड के रूप में अनुमानित दूरी की रिपोर्ट करता है। पास में शामिल include_seconds: true सेकंड include_seconds: true कि यदि आप दूरी <1 मिनट, 29 सेकंड में अधिक विस्तृत अनुमान चाहते हैं। निम्नलिखित तालिका के आधार पर गड़बड़ी की सूचना दी जाती है:

0 <-> 29 secs                                                             # => less than a minute
30 secs <-> 1 min, 29 secs                                                # => 1 minute
1 min, 30 secs <-> 44 mins, 29 secs                                       # => [2..44] minutes
44 mins, 30 secs <-> 89 mins, 29 secs                                     # => about 1 hour
89 mins, 30 secs <-> 23 hrs, 59 mins, 29 secs                             # => about [2..24] hours
23 hrs, 59 mins, 30 secs <-> 41 hrs, 59 mins, 29 secs                     # => 1 day
41 hrs, 59 mins, 30 secs  <-> 29 days, 23 hrs, 59 mins, 29 secs           # => [2..29] days
29 days, 23 hrs, 59 mins, 30 secs <-> 44 days, 23 hrs, 59 mins, 29 secs   # => about 1 month
44 days, 23 hrs, 59 mins, 30 secs <-> 59 days, 23 hrs, 59 mins, 29 secs   # => about 2 months
59 days, 23 hrs, 59 mins, 30 secs <-> 1 yr minus 1 sec                    # => [2..12] months
1 yr <-> 1 yr, 3 months                                                   # => about 1 year
1 yr, 3 months <-> 1 yr, 9 months                                         # => over 1 year
1 yr, 9 months <-> 2 yr minus 1 sec                                       # => almost 2 years
2 yrs <-> max time or date                                                # => (same rules as 1 yr)

include_seconds: true साथ include_seconds: true और अंतर <1 मिनट 29 सेकंड:

0-4   secs      # => less than 5 seconds
5-9   secs      # => less than 10 seconds
10-19 secs      # => less than 20 seconds
20-39 secs      # => half a minute
40-59 secs      # => less than a minute
60-89 secs      # => 1 minute

from_time = Time.now
distance_of_time_in_words(from_time, from_time + 50.minutes)                                # => about 1 hour
distance_of_time_in_words(from_time, 50.minutes.from_now)                                   # => about 1 hour
distance_of_time_in_words(from_time, from_time + 15.seconds)                                # => less than a minute
distance_of_time_in_words(from_time, from_time + 15.seconds, include_seconds: true)         # => less than 20 seconds
distance_of_time_in_words(from_time, 3.years.from_now)                                      # => about 3 years
distance_of_time_in_words(from_time, from_time + 60.hours)                                  # => 3 days
distance_of_time_in_words(from_time, from_time + 45.seconds, include_seconds: true)         # => less than a minute
distance_of_time_in_words(from_time, from_time - 45.seconds, include_seconds: true)         # => less than a minute
distance_of_time_in_words(from_time, 76.seconds.from_now)                                   # => 1 minute
distance_of_time_in_words(from_time, from_time + 1.year + 3.days)                           # => about 1 year
distance_of_time_in_words(from_time, from_time + 3.years + 6.months)                        # => over 3 years
distance_of_time_in_words(from_time, from_time + 4.years + 9.days + 30.minutes + 5.seconds) # => about 4 years

to_time = Time.now + 6.years + 19.days
distance_of_time_in_words(from_time, to_time, include_seconds: true)                        # => about 6 years
distance_of_time_in_words(to_time, from_time, include_seconds: true)                        # => about 6 years
distance_of_time_in_words(Time.now, Time.now)                                               # => less than a minute

scope विकल्प के साथ, आप अनुवाद देखने के लिए रेल के लिए एक कस्टम गुंजाइश को परिभाषित कर सकते हैं।

उदाहरण के लिए आप अपने लोकेल (जैसे en.yml) में निम्नलिखित को परिभाषित कर सकते हैं।

datetime:
  distance_in_words:
    short:
      about_x_hours:
        one: 'an hour'
        other: '%{count} hours'

अधिक उदाहरणों के लिए github.com/svenfuchs/rails-i18n/blob/master/rails/locale/en.yml देखें।

जिसके बाद निम्नलिखित परिणाम होंगे:

from_time = Time.now
distance_of_time_in_words(from_time, from_time + 50.minutes, scope: 'datetime.distance_in_words.short') # => "an hour"
distance_of_time_in_words(from_time, from_time + 3.hours, scope: 'datetime.distance_in_words.short')    # => "3 hours"
दूरी_ऑफ_टाइम_इन_साइड्स_टू_नो (from_time, विकल्प = {})
इसके लिए उपनाम: time_ago_in_words
select_date (दिनांक = Date.current, विकल्प = {}, html_options = {}) स्रोत दिखाएं
# File actionview/lib/action_view/helpers/date_helper.rb, line 442
def select_date(date = Date.current, options = {}, html_options = {})
  DateTimeSelector.new(date, options, html_options).select_date
end

date साथ पूर्व-चयनित HTML चयन-टैग (वर्ष, माह और दिन के लिए एक) का एक सेट देता है। वांछित क्रम में :day प्रतीकों, की एक सरणी के साथ :order विकल्प का उपयोग करके टैग के क्रम को स्पष्ट रूप से निर्धारित करना संभव है :day और :day । यदि सरणी :order विकल्प में दिए गए सभी तीनों प्रतीकों में शामिल नहीं हैं, तो सभी टैग छिपा दिए जाएंगे।

अगर html_options हैश में कुछ भी पारित किया जाता है तो इसे सेट के हर चुनिंदा टैग पर लागू किया जाएगा।

my_date = Time.now + 6.days

# Generates a date select that defaults to the date in my_date (six days after today).
select_date(my_date)

# Generates a date select that defaults to today (no specified date).
select_date()

# Generates a date select that defaults to the date in my_date (six days after today)
# with the fields ordered year, month, day rather than month, day, year.
select_date(my_date, order: [:year, :month, :day])

# Generates a date select that discards the type of the field and defaults to the date in
# my_date (six days after today).
select_date(my_date, discard_type: true)

# Generates a date select that defaults to the date in my_date,
# which has fields separated by '/'.
select_date(my_date, date_separator: '/')

# Generates a date select that defaults to the datetime in my_date (six days after today)
# prefixed with 'payday' rather than 'date'.
select_date(my_date, prefix: 'payday')

# Generates a date select with a custom prompt. Use <tt>prompt: true</tt> for generic prompts.
select_date(my_date, prompt: {day: 'Choose day', month: 'Choose month', year: 'Choose year'})
select_date(my_date, prompt: {hour: true}) # generic prompt for hours
select_date(my_date, prompt: true) # generic prompts for all
select_datetime (datetime = Time.current, विकल्प = {}, html_options = {}) स्रोत दिखाएं
# File actionview/lib/action_view/helpers/date_helper.rb, line 403
def select_datetime(datetime = Time.current, options = {}, html_options = {})
  DateTimeSelector.new(datetime, options, html_options).select_datetime
end

HTML चयन-टैग (वर्ष, माह, दिन, घंटा, मिनट और दूसरा) के एक सेट को datetime साथ पूर्व-चयनित करता है। वांछित क्रम में :day प्रतीकों, की एक सरणी के साथ :order विकल्प का उपयोग करके टैग के क्रम को स्पष्ट रूप से निर्धारित करना संभव है। यदि आप एक Symbol आपूर्ति नहीं करते हैं, तो इसे इस पर जोड़ा जाएगा :order पारित किया गया है। आप तत्वों के दृश्य प्रदर्शन को नियंत्रित करने के लिए options :time_separator :datetime_separator और :time_separator कुंजियाँ भी जोड़ सकते हैं।

अगर html_options हैश में कुछ भी पारित किया जाता है तो इसे सेट के हर चुनिंदा टैग पर लागू किया जाएगा।

my_date_time = Time.now + 4.days

# Generates a datetime select that defaults to the datetime in my_date_time (four days after today).
select_datetime(my_date_time)

# Generates a datetime select that defaults to today (no specified datetime)
select_datetime()

# Generates a datetime select that defaults to the datetime in my_date_time (four days after today)
# with the fields ordered year, month, day rather than month, day, year.
select_datetime(my_date_time, order: [:year, :month, :day])

# Generates a datetime select that defaults to the datetime in my_date_time (four days after today)
# with a '/' between each date field.
select_datetime(my_date_time, date_separator: '/')

# Generates a datetime select that defaults to the datetime in my_date_time (four days after today)
# with a date fields separated by '/', time fields separated by '' and the date and time fields
# separated by a comma (',').
select_datetime(my_date_time, date_separator: '/', time_separator: '', datetime_separator: ',')

# Generates a datetime select that discards the type of the field and defaults to the datetime in
# my_date_time (four days after today)
select_datetime(my_date_time, discard_type: true)

# Generate a datetime field with hours in the AM/PM format
select_datetime(my_date_time, ampm: true)

# Generates a datetime select that defaults to the datetime in my_date_time (four days after today)
# prefixed with 'payday' rather than 'date'
select_datetime(my_date_time, prefix: 'payday')

# Generates a datetime select with a custom prompt. Use <tt>prompt: true</tt> for generic prompts.
select_datetime(my_date_time, prompt: {day: 'Choose day', month: 'Choose month', year: 'Choose year'})
select_datetime(my_date_time, prompt: {hour: true}) # generic prompt for hours
select_datetime(my_date_time, prompt: true) # generic prompts for all
select_day (दिनांक, विकल्प = {}, html_options = {}) स्रोत दिखाएं
# File actionview/lib/action_view/helpers/date_helper.rb, line 585
def select_day(date, options = {}, html_options = {})
  DateTimeSelector.new(date, options, html_options).select_day
end

चुने गए वर्तमान दिन के साथ 31 के माध्यम से 1 दिनों में से प्रत्येक के लिए विकल्पों के साथ एक चयनित टैग लौटाता है। date को एक दिन की संख्या के लिए प्रतिस्थापित भी किया जा सकता है। यदि आप एक प्रमुख शून्य सेट के साथ दिन प्रदर्शित करना चाहते हैं :use_two_digit_numbers options में :use_two_digit_numbers कुंजी का उपयोग options । डिफ़ॉल्ट रूप से :field_name विकल्प, 'दिन' का उपयोग करके फ़ील्ड नाम को ओवरराइड करें।

my_date = Time.now + 2.days

# Generates a select field for days that defaults to the day for the date in my_date.
select_day(my_date)

# Generates a select field for days that defaults to the number given.
select_day(5)

# Generates a select field for days that defaults to the number given, but displays it with two digits.
select_day(5, use_two_digit_numbers: true)

# Generates a select field for days that defaults to the day for the date in my_date
# that is named 'due' rather than 'day'.
select_day(my_date, field_name: 'due')

# Generates a select field for days with a custom prompt. Use <tt>prompt: true</tt> for a
# generic prompt.
select_day(5, prompt: 'Choose day')
select_hour ( डेटाटाइम , विकल्प = {}, html_options = {}) स्रोत दिखाएं
# File actionview/lib/action_view/helpers/date_helper.rb, line 558
def select_hour(datetime, options = {}, html_options = {})
  DateTimeSelector.new(datetime, options, html_options).select_hour
end

चयनित घंटे में से प्रत्येक के लिए 23 के माध्यम से 0 के साथ विकल्पों के साथ एक चयनित टैग देता है। datetime या तो Time या DateTime ऑब्जेक्ट या पूर्णांक हो सकता है। फ़ील्ड नाम को ओवरराइड करें :field_name विकल्प, डिफ़ॉल्ट रूप से 'घंटा'।

my_time = Time.now + 6.hours

# Generates a select field for hours that defaults to the hour for the time in my_time.
select_hour(my_time)

# Generates a select field for hours that defaults to the number given.
select_hour(13)

# Generates a select field for hours that defaults to the hour for the time in my_time
# that is named 'stride' rather than 'hour'.
select_hour(my_time, field_name: 'stride')

# Generates a select field for hours with a custom prompt. Use <tt>prompt: true</tt> for a
# generic prompt.
select_hour(13, prompt: 'Choose hour')

# Generate a select field for hours in the AM/PM format
select_hour(my_time, ampm: true)

# Generates a select field that includes options for hours from 2 to 14.
select_hour(my_time, start_hour: 2, end_hour: 14)
select_minute ( डेटाटाइम , विकल्प = {}, html_options = {}) स्रोत दिखाएं
# File actionview/lib/action_view/helpers/date_helper.rb, line 529
def select_minute(datetime, options = {}, html_options = {})
  DateTimeSelector.new(datetime, options, html_options).select_minute
end

चयनित मिनटों में से प्रत्येक के लिए विकल्पों के साथ एक चयनित टैग 59 के माध्यम से देता है। इसके अलावा चयनित मिनट के साथ minute_step साथ 59 से 00 मिनट के साथ चयनित टैग वापस कर सकते हैं। datetime या तो Time या DateTime ऑब्जेक्ट या पूर्णांक हो सकता है। फ़ील्ड नाम को ओवरराइड करें :field_name विकल्प, डिफ़ॉल्ट रूप से 'मिनट'।

my_time = Time.now + 10.minutes

# Generates a select field for minutes that defaults to the minutes for the time in my_time.
select_minute(my_time)

# Generates a select field for minutes that defaults to the number given.
select_minute(14)

# Generates a select field for minutes that defaults to the minutes for the time in my_time
# that is named 'moment' rather than 'minute'.
select_minute(my_time, field_name: 'moment')

# Generates a select field for minutes with a custom prompt. Use <tt>prompt: true</tt> for a
# generic prompt.
select_minute(14, prompt: 'Choose minutes')
select_month (दिनांक, विकल्प = {}, html_options = {}) स्रोत दिखाएं
# File actionview/lib/action_view/helpers/date_helper.rb, line 630
def select_month(date, options = {}, html_options = {})
  DateTimeSelector.new(date, options, html_options).select_month
end

जनवरी के प्रत्येक महीने के लिए विकल्पों के साथ एक चयनित टैग लौटाता है, दिसंबर के माध्यम से चालू माह के साथ चयनित होता है। महीने के नाम कुंजी के रूप में प्रस्तुत किए जाते हैं (उपयोगकर्ता को क्या दिखाया गया है) और महीने की संख्या (1-12) को मान के रूप में उपयोग किया जाता है (जो सर्वर को प्रस्तुत किया जाता है)। नामों के बजाय प्रस्तुति के लिए महीने की संख्या का उपयोग करना भी संभव है - ऐसा करने के लिए सही करने के लिए options में से :use_month_numbers कुंजी सेट options । यदि आप संख्या और नाम दोनों चाहते हैं, तो सही में options में :add_month_numbers कुंजी सेट options । यदि आप महीने के नामों को संक्षिप्त रूप में दिखाना पसंद करेंगे, तो सही के options में :use_short_month कुंजी सेट options । यदि आप अपने स्वयं के महीनों के नामों का उपयोग करना चाहते हैं, तो 12 महीने के नामों की एक सरणी में options में :use_month_names सेट options । यदि आप महीनों को एक प्रमुख शून्य सेट के साथ प्रदर्शित करना चाहते हैं :use_two_digit_numbers options में :use_two_digit_numbers कुंजी का उपयोग options । फ़ील्ड नाम को ओवरराइड करें :field_name विकल्प, डिफ़ॉल्ट रूप से 'महीना'।

# Generates a select field for months that defaults to the current month that
# will use keys like "January", "March".
select_month(Date.today)

# Generates a select field for months that defaults to the current month that
# is named "start" rather than "month".
select_month(Date.today, field_name: 'start')

# Generates a select field for months that defaults to the current month that
# will use keys like "1", "3".
select_month(Date.today, use_month_numbers: true)

# Generates a select field for months that defaults to the current month that
# will use keys like "1 - January", "3 - March".
select_month(Date.today, add_month_numbers: true)

# Generates a select field for months that defaults to the current month that
# will use keys like "Jan", "Mar".
select_month(Date.today, use_short_month: true)

# Generates a select field for months that defaults to the current month that
# will use keys like "Januar", "Marts."
select_month(Date.today, use_month_names: %w(Januar Februar Marts ...))

# Generates a select field for months that defaults to the current month that
# will use keys with two digit numbers like "01", "03".
select_month(Date.today, use_two_digit_numbers: true)

# Generates a select field for months with a custom prompt. Use <tt>prompt: true</tt> for a
# generic prompt.
select_month(14, prompt: 'Choose month')
select_second ( डेटाटाइम , विकल्प = {}, html_options = {}) स्रोत दिखाएं
# File actionview/lib/action_view/helpers/date_helper.rb, line 505
def select_second(datetime, options = {}, html_options = {})
  DateTimeSelector.new(datetime, options, html_options).select_second
end

वर्तमान सेकंड चयनित के साथ 59 में से प्रत्येक के लिए विकल्पों के साथ एक चयनित टैग देता है। datetime या तो Time या DateTime ऑब्जेक्ट या पूर्णांक हो सकता है। फ़ील्ड नाम को ओवरराइड करें :field_name विकल्प, डिफ़ॉल्ट रूप से 'दूसरा'।

my_time = Time.now + 16.seconds

# Generates a select field for seconds that defaults to the seconds for the time in my_time.
select_second(my_time)

# Generates a select field for seconds that defaults to the number given.
select_second(33)

# Generates a select field for seconds that defaults to the seconds for the time in my_time
# that is named 'interval' rather than 'second'.
select_second(my_time, field_name: 'interval')

# Generates a select field for seconds with a custom prompt. Use <tt>prompt: true</tt> for a
# generic prompt.
select_second(14, prompt: 'Choose seconds')
select_time (datetime = Time.current, विकल्प = {}, html_options = {}) स्रोत दिखाएं
# File actionview/lib/action_view/helpers/date_helper.rb, line 482
def select_time(datetime = Time.current, options = {}, html_options = {})
  DateTimeSelector.new(datetime, options, html_options).select_time
end

HTML चयन-टैग (घंटे और मिनट के लिए एक) का एक सेट लौटाता है। आप आउटपुट को प्रारूपित करने के लिए :time_separator कुंजी सेट कर सकते हैं और सेकंड के लिए एक इनपुट शामिल करने के लिए शामिल हैं।

अगर html_options हैश में कुछ भी पारित किया जाता है तो इसे सेट के हर चुनिंदा टैग पर लागू किया जाएगा।

my_time = Time.now + 5.days + 7.hours + 3.minutes + 14.seconds

# Generates a time select that defaults to the time in my_time.
select_time(my_time)

# Generates a time select that defaults to the current time (no specified time).
select_time()

# Generates a time select that defaults to the time in my_time,
# which has fields separated by ':'.
select_time(my_time, time_separator: ':')

# Generates a time select that defaults to the time in my_time,
# that also includes an input for seconds.
select_time(my_time, include_seconds: true)

# Generates a time select that defaults to the time in my_time, that has fields
# separated by ':' and includes an input for seconds.
select_time(my_time, time_separator: ':', include_seconds: true)

# Generate a time select field with hours in the AM/PM format
select_time(my_time, ampm: true)

# Generates a time select field with hours that range from 2 to 14
select_time(my_time, start_hour: 2, end_hour: 14)

# Generates a time select with a custom prompt. Use <tt>:prompt</tt> to true for generic prompts.
select_time(my_time, prompt: {day: 'Choose day', month: 'Choose month', year: 'Choose year'})
select_time(my_time, prompt: {hour: true}) # generic prompt for hours
select_time(my_time, prompt: true) # generic prompts for all
select_year (दिनांक, विकल्प = {}, html_options = {}) स्रोत दिखाएं
# File actionview/lib/action_view/helpers/date_helper.rb, line 659
def select_year(date, options = {}, html_options = {})
  DateTimeSelector.new(date, options, html_options).select_year
end

वर्तमान के प्रत्येक पक्ष पर पाँच वर्षों के विकल्पों के साथ एक चयनित टैग लौटाता है, जिसे चुना गया है। पांच साल के त्रिज्या को options में :start_year और :end_year कुंजियों का उपयोग करके बदला जा सकता है। आरोही और अवरोही दोनों वर्ष :start_year बनाने के लिए समर्थित हैं :start_year इससे कम या इससे अधिक :end_year । नंबर के रूप में दी गई date को एक वर्ष के लिए प्रतिस्थापित भी किया जा सकता है। फ़ील्ड नाम को ओवरराइड करें :field_name विकल्प, डिफ़ॉल्ट रूप से 'वर्ष'।

# Generates a select field for years that defaults to the current year that
# has ascending year values.
select_year(Date.today, start_year: 1992, end_year: 2007)

# Generates a select field for years that defaults to the current year that
# is named 'birth' rather than 'year'.
select_year(Date.today, field_name: 'birth')

# Generates a select field for years that defaults to the current year that
# has descending year values.
select_year(Date.today, start_year: 2005, end_year: 1900)

# Generates a select field for years that defaults to the year 2006 that
# has ascending year values.
select_year(2006, start_year: 2000, end_year: 2010)

# Generates a select field for years with a custom prompt. Use <tt>prompt: true</tt> for a
# generic prompt.
select_year(14, prompt: 'Choose year')
time_ago_in_words (from_time, विकल्प = {}) स्रोत दिखाएं
# File actionview/lib/action_view/helpers/date_helper.rb, line 176
def time_ago_in_words(from_time, options = {})
  distance_of_time_in_words(from_time, Time.now, options)
end

जैसे distance_of_time_in_words , लेकिन कहां to_time तय किया गया है Time.now

time_ago_in_words(3.minutes.from_now)                 # => 3 minutes
time_ago_in_words(3.minutes.ago)                      # => 3 minutes
time_ago_in_words(Time.now - 15.hours)                # => about 15 hours
time_ago_in_words(Time.now)                           # => less than a minute
time_ago_in_words(Time.now, include_seconds: true) # => less than 5 seconds

from_time = Time.now - 3.days - 14.minutes - 25.seconds
time_ago_in_words(from_time)      # => 3 days

from_time = (3.days + 14.minutes + 25.seconds).ago
time_ago_in_words(from_time)      # => 3 days

ध्यान दें कि आप Numeric मान को पास नहीं कर सकते time_ago_in_words

: के रूप में भी एलियास distance_of_time_in_words_to_now
time_select (object_name, विधि, विकल्प = {}, html_options = {}) स्रोत दिखाएं
# File actionview/lib/action_view/helpers/date_helper.rb, line 319
def time_select(object_name, method, options = {}, html_options = {})
  Tags::TimeSelect.new(object_name, method, self, options, html_options).render
end

किसी निर्दिष्ट समय-आधारित विशेषता (द्वारा पहचाना गया method ) (टेम्पलेट द्वारा पहचानी गई object ) वस्तु पर निर्दिष्ट समय-आधारित विशेषता तक पहुँचने के लिए पूर्व-चयनित (एक घंटे, मिनट और वैकल्पिक रूप से दूसरा) एक सेट लौटाता है । आप सेकंड शामिल कर सकते हैं :include_seconds । आप :ampm विकल्प के साथ AM / PM प्रारूप में घंटे प्राप्त कर सकते हैं ।

यह विधि वास्तविक वर्ष, महीने और दिन के लिए 3 इनपुट छिपे हुए टैग भी उत्पन्न करेगी, जब तक कि विकल्प :ignore_date सेट नहीं किया जाता है true । यदि आप सेट करते :ignore_date हैं true , तो आपके पास date_select फॉर्म के भीतर एक ही विधि होनी चाहिए अन्यथा एक अपवाद उठाया जाएगा।

अगर html_options हैश में कुछ भी पारित किया जाता है तो इसे सेट के हर चुनिंदा टैग पर लागू किया जाएगा।

# Creates a time select tag that, when POSTed, will be stored in the article variable in the sunrise attribute.
time_select("article", "sunrise")

# Creates a time select tag with a seconds field that, when POSTed, will be stored in the article variables in
# the sunrise attribute.
time_select("article", "start_time", include_seconds: true)

# You can set the <tt>:minute_step</tt> to 15 which will give you: 00, 15, 30, and 45.
time_select 'game', 'game_time', {minute_step: 15}

# Creates a time select tag with a custom prompt. Use <tt>prompt: true</tt> for generic prompts.
time_select("article", "written_on", prompt: {hour: 'Choose hour', minute: 'Choose minute', second: 'Choose seconds'})
time_select("article", "written_on", prompt: {hour: true}) # generic prompt for hours
time_select("article", "written_on", prompt: true) # generic prompts for all

# You can set :ampm option to true which will show the hours as: 12 PM, 01 AM .. 11 PM.
time_select 'game', 'game_time', {ampm: true}

सक्रिय रिकॉर्ड ऑब्जेक्ट के लिए मल्टी-पैरामीटर असाइनमेंट के लिए चयन तैयार किए जाते हैं।

नोट: यदि दिन को विकल्प के रूप में शामिल नहीं किया गया है, लेकिन माह है, तो यह सुनिश्चित करने के लिए दिन 1 पर सेट किया जाएगा कि सभी महीने के विकल्प मान्य हैं।

time_tag (date_or_time, * args, & block) स्रोत दिखाएं
# File actionview/lib/action_view/helpers/date_helper.rb, line 680
def time_tag(date_or_time, *args, &block)
  options  = args.extract_options!
  format   = options.delete(:format) || :long
  content  = args.first || I18n.l(date_or_time, format: format)
  datetime = date_or_time.acts_like?(:time) ? date_or_time.xmlschema : date_or_time.iso8601

  content_tag("time".freeze, content, options.reverse_merge(datetime: datetime), &block)
end

दिए गए दिनांक या समय के लिए एक HTML समय टैग देता है।

time_tag Date.today  # =>
  <time datetime="2010-11-04">November 04, 2010</time>
time_tag Time.now  # =>
  <time datetime="2010-11-04T17:55:45+01:00">November 04, 2010 17:55</time>
time_tag Date.yesterday, 'Yesterday'  # =>
  <time datetime="2010-11-03">Yesterday</time>
time_tag Date.today, pubdate: true  # =>
  <time datetime="2010-11-04" pubdate="pubdate">November 04, 2010</time>
time_tag Date.today, datetime: Date.today.strftime('%G-W%V') # =>
  <time datetime="2010-W44">November 04, 2010</time>

<%= time_tag Time.now do %>
  <span>Right now</span>
<% end %>
# => <time datetime="2010-11-04T17:55:45+01:00"><span>Right now</span></time>

Original text