Class: RailsAdmin::Support::Datetime
- Inherits:
-
Object
- Object
- RailsAdmin::Support::Datetime
- Defined in:
- lib/rails_admin/support/datetime.rb
Constant Summary collapse
- FLATPICKR_TRANSLATIONS =
Ruby format options as a key and flatpickr format options as a value
{ '%A' => 'l', # The full weekday name ("Sunday") '%a' => 'D', # The abbreviated weekday name ("Sun") '%B' => 'F', # The full month name ("January") '%b' => 'M', # The abbreviated month name ("Jan") '%D' => 'm/d/y', # American date format mm/dd/yy '%d' => 'd', # Day of the month (01..31) '%-d' => 'j', # Day of the month (1..31) '%e' => 'j', # Day of the month (1..31) '%F' => 'Y-m-d', # ISO 8601 date format '%H' => 'H', # Hour of the day, 24-hour clock (00..23) '%-H' => 'H', # Hour of the day, 24-hour clock (0..23) '%h' => 'M', # Same as %b '%I' => 'G', # Hour of the day, 12-hour clock (01..12) '%-I' => 'h', # Hour of the day, 12-hour clock (1..12) '%k' => 'H', # Hour of the day, 24-hour clock (0..23) '%l' => 'h', # Hour of the day, 12-hour clock (1..12) '%-l' => 'h', # Hour of the day, 12-hour clock (1..12) '%M' => 'i', # Minute of the hour (00..59) '%-M' => 'i', # Minute of the hour (00..59) '%m' => 'm', # Month of the year (01..12) '%-m' => 'n', # Month of the year (1..12) '%P' => 'K', # Meridian indicator ('am' or 'pm') '%p' => 'K', # Meridian indicator ('AM' or 'PM') '%R' => 'H:i', # 24-hour time (%H:%M) '%r' => 'G:i:S K', # 12-hour time (%I:%M:%S %p) '%S' => 'S', # Second of the minute (00..60) '%-S' => 's', # Second of the minute (0..60) '%s' => 'U', # Number of seconds since 1970-01-01 00:00:00 UTC. '%T' => 'H:i:S', # 24-hour time (%H:%M:%S) '%U' => 'W', # Week number of the year. The week starts with Sunday. (00..53) '%w' => 'w', # Day of the week (Sunday is 0, 0..6) '%X' => 'H:i:S', # Same as %T '%x' => 'm/d/y', # Same as %D '%Y' => 'Y', # Year with century '%y' => 'y', # Year without a century (00..99) '%%' => '%', }.freeze
Class Method Summary collapse
Class Method Details
.to_flatpickr_format(strftime_format) ⇒ Object
47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 |
# File 'lib/rails_admin/support/datetime.rb', line 47 def to_flatpickr_format(strftime_format) strftime_format.gsub(/(?<!%)(?<![-0-9:])\w/, '\\\\\0').gsub(/%([-0-9:]?\w)/) do |match| # Timezone can't be handled by frontend, the server's one is always used case match when '%Z', '%:z' # Time zone as hour and minute offset from UTC with a colon (e.g. +09:00) Time.zone.formatted_offset when '%z' # Time zone as hour and minute offset from UTC (e.g. +0900) Time.zone.formatted_offset(false) else FLATPICKR_TRANSLATIONS[match] or raise <<~MSG Unsupported strftime directive '#{match}' was found. Please consider explicitly setting flatpickr_format instance option for the field. field(:name_of_field) { flatpickr_format '...' } MSG end end end |