Ruby: Как вы конвертируете время или дату в дружественную строку URL? - PullRequest
2 голосов
/ 16 сентября 2010

Например, если у меня есть Time.now, как мне преобразовать это в дружественную строку URL?

Time.now.some_method_here => some_url_friendly_string_here

Я полагаю, что для этого есть встроенный метод Ruby, но я не могу найти его в Google. Есть идеи?

Ответы [ 4 ]

4 голосов
/ 16 сентября 2010

Поскольку вы используете Rails (как указано вашим тегом), вы можете использовать .to_s:

Time.now.to_s

Вы можете указать формат времени для метода, который будет форматировать строку по-другому, например Time.now.to_s(:db). Пожалуйста, смотрите эту ссылку для форматов даты по умолчанию. Если вы не укажете формат, он будет использовать то же самое, что и strftime.

Следующая часть этой страницы также описывает, как добавить свои собственные форматы времени, что очень просто:

# Initializer
Time::DATE_FORMATS[:month_and_year] = "%B %Y"

# Any code
Time.now.to_s(:month_and_year) # => September 2010
3 голосов
/ 16 сентября 2010

Все в рубине открыто и расширяемо

class Time
  def to_url_string
    self.strftime("%H:%M:%s")
  end
end
2 голосов
/ 16 сентября 2010

Вы можете использовать метод strftime. Это немного загадочно, но если вы посмотрите на документы , вы можете выбрать год, месяц, день и т. Д.

Например, Time.now.strftime("%H:%M:%s") даст время в часах, минутах и ​​секундах.

1 голос
/ 16 сентября 2010

Вы можете использовать метод xmlschema, который будет возвращать дату / время в формате:

CCYY-MM-DDThh:mm:ssTZD

или

CCYY-MM-DDThh:mm:ss.sssTZD

в зависимости от значения аргумента fraction_digits.

Это даст вам время, подобное:

2010-09-15T20:31:15+05:00

например.

См. документы для получения дополнительной информации и ссылки на код.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...