2010-12-30 3 views
0

Теперь я работаю над своим выходом из каналов, которые я беру с сайта. То, что я сейчас делаю это время, и я хочу, чтобы отображаться в возможно, немного быть особым образом .. как это ..Rails 3 выход времени

today, 14:12 
yesterday, 15:34 
27/12, 15:24 

у меня есть это в моем коде

= news.entry_published.strftime("%d/%m, %H:%M") 

это дает мне ошибку говоря

undefined method `strftime' for "2010-12-30 19:26:00.000000":String 

И dosn't делать то, что я хочу с днями ..

Edit:

- @date = DateTime.strptime(news.entry_published, "%Y-%m-%d %H:%M:%S") 
= @date.strftime("%d/%m, %H:%M") 

В настоящее время работает, и дает этот выход

30/12, 19:26 

Но я все еще должен проверить, если он сегодня, вчера или просто еще один день. Cheers, Oluf.

ответ

0

Ваша проблема в том, что вам нужна дата, но на самом деле у вас есть дата-время.

Это должно быть достаточно легко проверить, если дата сегодня сделать что-то вроде ...

@date.to_date == Date.today 

Вчера ...

@date.to_date == Date.yesterday 
+0

Привет, так что это не сработало, поэтому я посмотрел в своем терминале, и это говорит это .. >> Date.today => Fri, 31 Dec 2010 >> Date.yesterday => Ср, 29 дек 2010 –

+0

Неисправна ли ошибка? Убедитесь, что вы выполняете это сравнение до этой строки @ date.strftime («% d /% m,% H:% M»), иначе вы преобразуете DateTime в строку, а затем в дату, которая может дать вам неожиданные результаты. – jmcnevin

+0

https://rails.lighthouseapp.com/projects/8994/tickets/6237-date-bug-in-rails-3#ticket-6237-6 –

1

Как следует из сообщения об ошибке, тип данных для entry_published is String. Я считаю, что проблема в том, что в базе данных entry_published - это тип данных varchar, правильно?

Чтобы решить эту проблему, вы должны выполнить одно из следующих действий: - Изменение entry_published тип данных базы данных DateTime - сначала преобразовать эту строку даты, а затем применить этот STRFTIME метод.

+0

Или превратить его в объект 'Time'. –

+0

Спасибо, что сработал, я обновил свой вопрос, но мне все еще нужна помощь с «сегодняшней» и «вчерашней» штукой. –

Смежные вопросы