1

Ruby on Rails の Time オブジェクトには時刻が格納されていると思っていましたが、実行Time.now.beginning_of_dayすると日付も表示されます。日付ではなく時間をキャプチャしようとしているだけです。これを行う方法はありますか?ありがとう

4

1 に答える 1

2

はい、Rails Date Formats を実行する必要があります – strftime

このねじれを参照してください http://www.wetware.co.nz/2009/07/rails-date-formats-strftime/

そしてこのリンクhttp://apidock.com/ruby/DateTime/strftime

例: // あなたの場合、そうすべきです Time.now.beginning_of_day.strftime("%I:%M")

With preceding zero (capital I)

Time.now.strftime("%I:%M") # => 05:21
Without preceding zero (lowercase L)

Time.now.strftime("%l:%M") # => 5:21

それが役立つことを願っています。

UPDATE: // 以下のコメントに関するご質問にお答えしますWhy is Time storing date information? Shouldn't it just be time?

質問の良い点は、vladr上記(I am sure that the group of people who create rails will think very similar to vladr mention above when they gonna design Time object in rail)で述べたように、時間について話している場合、タイムゾーンにも関係することは仕方ありません。あなたの場合、Time.now.beginning_of_day を使用したいですか? 私は今タイにいて、あなたがアメリカにいると仮定します。アメリカの時間はタイよりも 12 時間遅いため、現在タイでは午前 10:00 であり、アメリカでは月曜日の午後 10:00 である必要があります。 Time.now.beginning_of_day (より明確な状況を把握するために Time.now を使用します) では、答えは何でしょうか? そういうわけで、Rails を作成しているグループは標準として UTC+0 を使用していると思います。あなたの場合、Time.zone.now を使用することをお勧めします。最近、興味深いトピックのブログを見つけました。http://wwwを参照してください。 .elabs.se/blog/36-working-with-time-zones-in-ruby-on-rails、それが役立つことを願っています。何かが足りないと感じたら、これを読んだ人は、私の答えを自由に編集してください。どうもありがとうございました:)。

于 2012-11-12T04:16:13.923 に答える