我正在尝试倒计时从开始日期到结束日期的日期,我在Ruby中构建了一个方法,但是我得到了一个"未定义的方法`div'"终端出错。 在玩完之后我发现当我在终端中回叫开始/结束日期时,它会以这种格式返回日期:星期三,2018年4月25日。 我相信这就是为什么我得到未定义的方法错误。 有谁知道如何转换日期?
我的代码如下:
def event_days
Integer(Date.new(self.end_date.to_time) - (closer_to_end_date))
end
def closer_to_end_date
if Date.today >= Date.new(self.start_date)
Date.today
elsif Date.new(self.start_date) >= Date.today
Date.new(self.start_date)
end
end
仅供参考:当我将end_date / start_date硬编码为(2018-04-25)时,该方法非常有效。
GitHub电话回复:https://github.com/belalkamara/CapStone/blob/phase1/app/models/activity.rb
答案 0 :(得分:1)
答案 1 :(得分:0)
我弄清楚它是什么......我删除了Date.new()调用并且它有效!谢谢JP Silvashy& Pierre-Adrien Buisson为您提供帮助。 所以现在看起来像这样:
def event_days
Integer(self.end_date - closer_to_end_date)
end
def closer_to_end_date
if Date.today >= self.start_date
Date.today
elsif self.start_date >= Date.today
self.start_date
end
end
答案 2 :(得分:0)
在Rails中你可以
string = "Wed, 25 Apr 2018"
date = string.to_date.strftime("%F")
=> "2018-04-25"
在Ruby中
require 'date'
string = "Wed, 25 Apr 2018"
DateTime.parse(string).strftime("%F")