ruby-on-rails - Rails 的 now 和created_at 之间的日期差异(以天为单位)

标签 ruby-on-rails datetime

您好,我有一个带有票证的表,其中有 DATETIME 格式的 valid_from 列和 INTEGER 格式的有效性列。现在我需要找出票证有效的天数(无效的天数)。我使用整数转换来获取天数,但看起来返回的不是天数。

>> valid_from #DATETIME
=> Thu, 12 Sep 2013 18:24:52 UTC +00:00
>> validity #INTEGER
=> 14
>> DateTime.now
=> Sat, 14 Sep 2013 13:17:32 -0500
>> ((valid_from + validity.days) - DateTime.now.utc).to_i
=> 1037228

命令((valid_from +validity.days) - DateTime.now.utc).to_i返回1037228天..哪里有错误?谢谢

编辑:

((valid_from + validity.days) - DateTime.now.utc).days

返回 1036588.3133747578 天

最佳答案

这在我的机器上运行得很好,给出

valid_from = DateTime.now.utc - 2.days
=> Thu, 12 Sep 2013 18:34:45 +0000 
valid_from
=> Thu, 12 Sep 2013 18:34:45 +0000 
validity
=> 14 
DateTime.now
=> Sat, 14 Sep 2013 11:35:11 -0700 
((valid_from + validity.days) - DateTime.now.utc).to_i
=> 11

我认为你的公式等没有错误。可能是你机器上的时间设置有问题;检查以确保您在所有地方都使用相同的时区。

编辑

刚刚意识到您的 valid_from 的格式不同。尝试在公式中将其替换为 valid_from.to_datetime

关于ruby-on-rails - Rails 的 now 和created_at 之间的日期差异(以天为单位),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18805025/

相关文章:

java - java中如何检查用户输入是纯文本还是日期

ruby-on-rails - 从 httparty 响应访问数据

javascript - 为什么路由存在会被视为没有路由匹配(RoutingError)?

php日期差异计算添加额外的天数

mysql - 如何从指定的 'Year' 获取数据,其中 'Year' 是 DATETIME 列

java - 日期解析出错

ruby-on-rails - ZenTest 中出现无效的 gemspec 错误。无效要求

ruby-on-rails - Ruby on Rails 平均水平?

ruby-on-rails - Heroku 应用程序崩溃 H10 - bash : bin/rails: No such file or directory

php - 没有为约束 Symfony\Component\Validator\Constraints\DateTime Symfony2 配置默认选项