時間のないRails DateTime.now


91

DateTime.nowを使用して現在の日付を取得し、時刻を「ストリップ」する必要があります。

たとえば、これは私望まないものを示しています:DateTime.now => Sat, 19 Nov 2011 18:54:13 UTC +00:00

これは私望むことを示してます:DateTime.now.some_operation => 2011-11-06 00:00:00 UTC


10
時間のないDateTimeはDateです:)あなたはDate.todayを意味していますか?
ajahongir 2013

回答:


173

次のいずれかを使用できます。

  • DateTime.current.midnight
  • DateTime.current.beginning_of_day
  • DateTime.current.to_date

@sekmo begin_of_dayはactivesupport(rails)の一部です。
イゴールカプコフ2017

3
DateTime.nowゾーンなしで使用しない方がよい。これは、のいずれかを使用すると良いでしょうTime.zone.nowDateTime.currentDateTime.now.in_time_zoneDateTime.now.utcDateTime.now.getlocalDateTime.now.iso8601DateTime.now.jisx0301DateTime.now.rfc3339DateTime.now.to_iDateTime.now.to_f代わりに。
ブライアンディマス2017年

@BryanDimasに感謝します、あなたのコメントは役に立ちます。他の国にIPを流している場合、VPNは影響しますか?
Jenuel Ganawed

20

必要なのは関数strftimeです。

Time.now.strftime("%Y-%d-%m %H:%M:%S %Z")

これは、%Y-%m-%d %H:%M:%Sフォーマットされたデータを期待するデータベースにデータを挿入する場合に、月と日の値を反転させるため、重大な問題を引き起こす可能性があります
quetzaluz

私の提案は、関数strftimeを使用することでした。使用するフォーマットは、それに応じて自分でカスタマイズする必要があります
VP。


4

に満足しているrequire 'active_support/core_ext'場合は、使用できます

DateTime.now.midnight # => Sat, 19 Nov 2011 00:00:00 -0800

1
ただ、私はあなたが推測するので、レールルビー・オン・タグに気づいている activesupportの:)必要として幸せ
ジョン・M


1

時間なしで今日の日付が必要な場合は、 Date.today


0

理解した。これは機能します:

DateTime.now.in_time_zone.midnight
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.