回答:
使用する
Time.now + 10.days
あるいは
10.days.from_now
どちらも間違いなく機能します。RubyだけでなくRailsを使用しているのですか?
あなたが間違いなくRailsにいる場合、どこから実行しようとしていますか?アクティブサポートをロードする必要があることに注意してください。
Time.now + 10.days
常にシステムのタイムゾーンを取得します10.days.from_now
が、rails configに何も設定されていない場合はUTCタイムゾーンを取得します。
Time.zone.now
代わりに使用するのが最適ですTime.now
。
days
、years
などはアクティブサポートの一部であるため、では機能しませんがirb
、では機能するはずrails console
です。
require 'active_support/time'
は、セッションの最初またはコマンドを使用する前に
参考のために、他のいくつかのオプション
-10.days.ago
# Available in Rails 4
DateTime.now.days_ago(-10)
私が知っているすべてのオプションをリストしてください:
[1] Time.now + 10.days
[2] 10.days.from_now
[3] -10.days.ago
[4] DateTime.now.days_ago(-10)
[5] Date.today + 10
さて、タイムゾーンを気にする場合、それらの違いは何ですか?
[1, 4]
システムタイムゾーンあり[2, 3]
Railsアプリの設定タイムゾーン[5]
結果に含まれる時刻のみの日付