Ruby on rails 在Rails中将系统日期转换为本地日期
我有一个具有此范围的模型:Ruby on rails 在Rails中将系统日期转换为本地日期,ruby-on-rails,ruby,Ruby On Rails,Ruby,我有一个具有此范围的模型: scope :next_week, lambda { where("date > (?) and date <= (?)", Date.today, Date.today + 1.weeks ) } 我看到过在时区中使用将time.now转换为配置时间的帖子 约会有这样的事吗?或者有人能推荐一种方法来调整我的日期查询,以计算date.today到本地日期吗?谢谢大家! 因为Date根本不考虑时区,所以您需要使用Rails添加到RubyDate对象的\t
scope :next_week, lambda { where("date > (?) and date <= (?)", Date.today, Date.today + 1.weeks ) }
我看到过在时区中使用将time.now转换为配置时间的帖子
约会有这样的事吗?或者有人能推荐一种方法来调整我的日期查询,以计算date.today
到本地日期吗?谢谢大家! 因为Date根本不考虑时区,所以您需要使用Rails添加到RubyDate
对象的\to\u time\u in\u current\u zone
方法
从文档中:
Converts Date to a TimeWithZone in the current zone if Time.zone or Time.zone_default is set, otherwise converts Date to a Time via #to_time
用法如下所示:
Date.today
# => Mon, 06 May 2013
Date.today.to_time_in_current_zone
# => Mon, 06 May 2013 00:00:00 CDT -05:00
在Elabs上有一篇精彩的博文,提供了关于这个主题的更多信息。我用Time.current.to_date
而不是date解决了这个问题。今天
谢谢Dan。我尝试了Date.今天。到当前区域的\u time\u
,但它在2013年5月7日星期二00:00:00 EDT-04:00回来了,尽管它仍然在东部时间5月6日。链接页面上的信息很好,但评论中也有一个讨论,暗指Date.today.to\u time\u in\u current\u zone
未按预期更改日期。
Date.today
# => Mon, 06 May 2013
Date.today.to_time_in_current_zone
# => Mon, 06 May 2013 00:00:00 CDT -05:00