Последующее изменение формата даты с Time.now на post.created_at - PullRequest
2 голосов
/ 25 июня 2010

Я ранее задавал вопрос о переполнении стека о том, как отформатировать мою дату в удобочитаемой форме.В этом суть всего этого.

Как мне взять

2010-06-14 19:01:00 UTC

и превратить его в

June 14th, 2010

Ответ, который я использовал, называл почтуdate и просто добавив ниже к post.rb

@date = Time.now
@date.strftime("%B %d, %Y")

Это показывает дату в словах, но я не хочу показывать текущую дату.Я хочу дату post.created_at.

Как я могу изменить вышеперечисленное (или что мне нужно добавить в другом месте), чтобы заставить это работать?

Ответы [ 3 ]

15 голосов
/ 25 июня 2010
post.created_at.strftime("%B %d, %Y")

Хороший ресурс для strftime: http://strfti.me

2 голосов
/ 25 июня 2010

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

 # config/initializers/time_formats.rb
  Time::DATE_FORMATS[:nice] = "%B %d, %Y"

Тогда используйте

 User.created_at.to_formatted_s(:nice)

Ссылки

0 голосов
/ 25 июня 2010

Если вы используете Rails, вы также можете определять пользовательские форматы времени в локалях.

Вот что у меня есть для польского языка:

pl:
  date:
    formats:
      default: "%Y-%m-%d"
      short: "%d %b"
      long: "%d %B %Y"

    day_names: [Niedziela, Poniedziałek, Wtorek, Środa, Czwartek, Piątek, Sobota]
    abbr_day_names: [nie, pon, wto, śro, czw, pia, sob]

    month_names: [~, Styczeń, Luty, Marzec, Kwiecień, Maj, Czerwiec, Lipiec, Sierpień, Wrzesień, Październik, Listopad, Grudzień]
    abbr_month_names: [~, sty, lut, mar, kwi, maj, cze, lip, sie, wrz, paź, lis, gru]
    order: [ :year, :month, :day ]

  time:
    formats:
      default: "%a, %d %b %Y, %H:%M:%S %z"
      short: "%d %b, %H:%M"
      long: "%d %B %Y, %H:%M"
    am: "przed południem"
    pm: "po południu"

Затем в представлениях вы локализуете метки времени с помощью:

<%= l(@post.created_at, :format => :long) %>

Или внешний вид:

I18n.l(@post.created_at, :format => :long)

Это более гибко, чем определение форматов непосредственно в классах Time или Date.

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