请帮助我知道,为什么输出总是其他部分,即使第一个条件得到满足
def date_string(date)
case date
when date.to_date == Date.today
"Today"
when date.to_date == (Date.today - 1.day)
"Yesterday"
else
date.strftime("%dth %B %Y")
end
end
我错过了什么?
答案 0 :(得分:4)
您错误地使用了case
语句。它应该是:
case date.to_date
when Date.today
'Today'
when Date.yesterday
'Yesterday'
else
date.strftime('%dth %B %Y')
end
答案 1 :(得分:2)
您目前正在做的事情是比较" date"的值。结果为" date.to_date == Date.today",这是一个布尔值。类似于:" date.to_date == true?"
所以你可以:
case date.to_date
when Date.today
then ...
......或......
case
when date.to_date == Date.today
then ..,
答案 2 :(得分:2)
我可能会在几天内使用差异:
case date.to_date - Date.today
when 0
'Today'
when -1
'Yesterday'
else
date.strftime('%dth %B %Y')
end