你好我有票据表,其中我有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天
答案 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