ruby 格式化日期对象以显示可读日期

vsikbqxv  于 2023-02-03  发布在  Ruby
关注(0)|答案(4)|浏览(113)

下面是我想展示的内容:

May 13, 2012

以下是正在显示的内容:

2012-05-13

我搜索了一些答案,它把我引到了“Formatting Dates and Floats in Ruby“,在那里它提到了一个可能的解决方案:

<p class="date"><%= @news_item.postdate.to_s("%B %d, %Y") %></p>

然而这并没有改变输出,没有调试错误或者异常被触发。
我可以做到这一点,它的工作非常好:

<p class="date"><%= Time.now.to_s("%B %d, %Y") %></p>

下面是我的迁移文件(查看我使用的数据类型):

class CreateNewsItems < ActiveRecord::Migration
  def change
    create_table :news_items do |t|

      t.date :postdate

      t.timestamps
    end
  end
end
1yjd4xko

1yjd4xko1#

Date.to_sTime.to_s不同。您的postdateDate,因此您可能需要查看strftime

postdate.strftime("%B %d, %Y")

甚至可以在Rails应用中添加自己的自定义日期格式:
Need small help in converting date format in ruby

ctrmrzij

ctrmrzij2#

to_formated_s函数已经为Rails中的DateTime对象提供了一些常见的人类可读格式。

datetime.to_formatted_s(:db)            # => "2007-12-04 00:00:00"
datetime.to_formatted_s(:short)         # => "04 Dec 00:00"
datetime.to_formatted_s(:long)          # => "December 04, 2007 00:00"
datetime.to_formatted_s(:long_ordinal)  # => "December 4th, 2007 00:00"
datetime.to_formatted_s(:rfc822)        # => "Tue, 04 Dec 2007 00:00:00 +0000"
datetime.to_formatted_s(:iso8601)       # => "2007-12-04T00:00:00+00:00"
8hhllhi2

8hhllhi23#

<%= time_ago_in_words @user.created_at %>

搜索结果:10小时前

az31mfrm

az31mfrm4#

要将created_at time转换为可读格式,请执行以下步骤

1.首先,将其转换为本地时间,如(UTC to local time)
时间状态Map= @用户.创建时间.本地时间
1.为了时间
时间_stmap.字符串时间(“%I:%M %p”)
1.日期
时间_stmap.字符串时间(“%B %d,%Y”)

相关问题