Rails在now和created_at之间的日期差异

时间:2013-09-14 18:26:47

标签: 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天

2 个答案:

答案 0 :(得分:2)

这在我的机器上工作正常,给出

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

答案 1 :(得分:0)

让我们尝试写下这样的东西:

((valid_from + validity.days) - Date.today).to_i