【发布时间】:2020-12-07 09:51:07
【问题描述】:
我有一个 Ruby on Rails 项目。假设我的数据库中有一个表items,其中有一列名为expiry_date。
考虑items 表中的这两条记录:
-
id: 1, expiry_date: 2020-12-25 23:29:00(假设我将它作为 ActiveRecord 对象加载到实例变量@item_one) -
id: 2, expiry_date: 2020-12-25 12:29:00(假设我将它作为 ActiveRecord 对象加载到实例变量@item_two)
为什么strftime 方法给了我这个(我希望他们都评估为25 December 2020?
@item_one.expiry_date.strftime('%-d %B %Y') 计算结果为 26 December 2020
@item_two.expiry_date.strftime('%-d %B %Y') 计算结果为 25 December 2020
【问题讨论】:
-
看起来像带有时区的东西。可能非时区到期日期在它被 strftimed 之前被时区化。这只是一个猜测,您需要在问题中添加更多信息才能确定。
-
@item_one.expiry_date和@item_two.expiry_date的值是多少? (包括时区) -
时区 ???? -- 日期存储在哪个时区?您的服务器在哪个时区运行?
-
顺便说一句,为什么名为
expiry_date的列有时间部分?
标签: ruby-on-rails ruby activerecord