我有从Rails 2.2.2迁移到Rails 3.2.1的网站。Rails 3中的日期操作3
我现在看到与一个自定义方法调用相关的奇怪日期问题。
我有一个返回格式MM/DD/YYYY
def clean_date date
return "00/00/00" if !date or date == ""
return date.strftime("%m/%d/%Y") if date.class.to_s == "Date"
return Date.parse(date).strftime("%m/%d/%Y") # assume it's a string
end
后,我搬到了Rails 3中,它停止返回正确格式的日期指定日期的方法。它现在返回一个MySQL型日期格式
>>> SHIP DATE BEFORE CLEAN: 12/24/2013
>>> SHIP DATE AFTER CLEAN: 2013-12-24
呼叫控制器
require 'date'
[...]
## In: 12/24/2013
existing_ship_date = clean_date(poi.ship_date)
## Out: 2013-12-24
## Should always return: 12/24/2013
我怎样才能解决这个问题的方法,例如,它的作品使用Rails 3.2.1吗?
感谢您的期待
我不明白为什么这个函数会以该格式返回日期。您使用的是哪个版本的Ruby? poi.ship_date的数据类型是什么?最后,函数中的哪个return语句正在执行?也许在函数中添加一些日志语句,以便我们知道该函数正在被采用的分支。 – 2013-05-07 19:31:16
poi.ship_date是格式为YYYY-MM-DD的日期,因此Date.parse(date).strftime(“%m /%d /%Y”)不会将输入值更改为MM/DD/YYYY;它只是通过它 – Slinky 2013-05-08 13:20:19