【问题标题】:How to handle a `datetime` value so to change it from `2012-04-27 00:00:00` to `27 april 2012`?如何处理“日期时间”值,以便将其从“2012-04-27 00:00:00”更改为“2012 年 4 月 27 日”?
【发布时间】:2012-04-27 13:17:51
【问题描述】:

我正在使用 Ruby on Rails v3.2.2,我想以<day_number> <month_name> <year_number> 的形式显示数据。也就是说,我有一个datetime 数据库表列,我想更改其包含的值,例如,从2012-04-27 00:00:0027 april 2012

我怎样才能做到这一点?

【问题讨论】:

  • 呃,你为什么不把它存储为date 而不是datetime
  • @Andrew Marshall - 这是因为我想尽可能精确。 ;-)

标签: ruby-on-rails ruby ruby-on-rails-3 datetime date


【解决方案1】:

标准方法是使用 rails 本地化。

型号

I18n.l(datetime, :format => :short)

控制器

I18n.l(datetime, :format => :long)

查看

<%= l(datetime), :format => :custom %>

config/locales/en.yml

en:
  time:
    formats:
      long: "%A %B %d %Y | %I:%M %p GMT"
      short: "%d %B %Y, %H:%M GMT"
      custom: "your custom format"
  date:
    formats:
      short: "%d %B %Y"
      long: "%A %B %d %Y"
      custom: "your custom format"

在您的情况下,格式应为“%d %A %Y”。

好处是,如果您想更改格式,您可以在一个地方为您正在使用的所有日期时间执行此操作。

【讨论】:

【解决方案2】:

你可以使用方法

str_name.strftime("%d %A %Y")

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-30
    • 2020-09-14
    • 2012-07-08
    • 2023-04-09
    • 2012-05-01
    • 1970-01-01
    相关资源
    最近更新 更多