Ruby:如何将时间或日期转换为友好的 URL 字符串?

sjs*_*jsc 3 ruby ruby-on-rails

例如,如果我有一个 Time.now,我如何将其转换为友好的 url 字符串?

Time.now.some_method_here => some_url_friendly_string_here
Run Code Online (Sandbox Code Playgroud)

我相信有一个内置的 Ruby 方法可以做到这一点,但我似乎无法在 Google 上找到它。有任何想法吗?

von*_*rad 5

当您使用 Rails(如您的标签所示)时,您可以使用 .to_s:

Time.now.to_s
Run Code Online (Sandbox Code Playgroud)

您可以为该方法指定时间格式,这将以不同的方式格式化字符串,例如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
Run Code Online (Sandbox Code Playgroud)