我有從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