2010-12-30 8 views
0

私はいくつかのサイトから取り込んでいるフィードの出力に取り組んでいます。私が現在やっていることは時間である、と私はそれがこのよう...多分、少しも特別な方法で表示することにしたい..私は私のコードでこれを持ってRails 3 times output

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

編集:

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

が動作するようになりましたし、この出力に

30/12, 19:26 

を与えるが、私はまだそれが今日、昨日またはちょうど別の日であるかどうかを確認する必要があります。 乾杯、Oluf。

答えて

0

あなたの問題は、日付が欲しいということですが、実際にはdatetimeがあります。

日付は今日のような何か...

@date.to_date == Date.today 

昨日...

@date.to_date == Date.yesterday 
+0

こんにちは、それはうまくいかず、私の端末で調べました。 this .. >> Date.today => 2010年12月31日金曜日 >>日付年月日 => Wed、29 Dec 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のデータ型はStringです。 私は問題がデータベースにあると信じていますentry_publishedはvarcharデータ型ですか?あなたは次のいずれかを行う必要があり、この解決するために

: - 変更は、日時 にデータベースのデータ型をentry_published - 初デートにこの文字列を変換し、その後、こののstrftime方法を適用します。

+0

や 'Time'オブジェクトに変換をしているかどうかはチェックするのは簡単でなければなりません。 –

+0

働いてくれてありがとうございました。質問を更新しましたが、 "今日"と "昨日"のことについてまだ助けが必要です。 –