【发布时间】:2016-05-12 09:57:32
【问题描述】:
我正在编写一个使用 mysql2 gem 并在 apache2/passenger 下运行的 Ruby 脚本。它不使用 rails。
该脚本遍历 mySql 查询结果,并将数据库日期与今天进行比较,以获取经过的时间(以天为单位)。问题是从 Date.new 中减去数据库日期的结果字符串是像 -2457521/1 这样的字符串。正确答案应该是 0。
我尝试使用 Date.parse() 和 Date.strptime() 将日期转换为 Ruby 日期,但得到了相同的结果。如何减去这些日期以获得它们之间的天数?
这是从我的脚本中摘录的经过编辑的代码。
require 'mysql2'
class Uptime
def call(env)
results = con.query("SELECT * FROM Uptimes ORDER BY Up DESC LIMIT 10")
flag = 0
results.each(symbolize_keys: true) do |row|
if flag == 0
last_event = row[:Up] # => 2016-05-12
flag = 1
end
end
# last_event = Date.parse("#{last_event}")
# last_event = Date.strptime("#{last_event}" "%Y-%m-%d")
days = Date.new - last_event # => -2457521/1
[200, {"Content-Type" => "text/html"}, [html]]
end
end
【问题讨论】: