私はmysql2 gemを使用し、apache2/passengerの下で動作するRubyスクリプトを書いています。mysql2 gemを使ったRubyスクリプト - 日付をDate.newと比較する
このスクリプトは、mySqlクエリ結果を繰り返し処理し、データベースの日付を今日と比較し、経過日数を取得します。問題は、Date.newからデータベース日付を引いた結果の文字列が-2457521/1のような文字列であることです。正解は0にする必要があります。
Dateを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
近いがDate.todayだ - last_event戻っ0/1 – markhorrocks
あなたは 'last_event.class'を実行した結果であるものを私に伝えることができますしてください? 'Date.parse("#{last_event} ")をコメントアウトしたことに気づきました'おそらくlast_eventはDate.todayからそれを減算するときにDateクラスではありません –
私は以前にクラスをチェックし、両方の日付。とにかく、(Date.today - last_event).to_iは私に正しい結果を与えるので、あなたの答えを正しく記入します。 – markhorrocks