2

Rails 2.2.2 から Rails 3.2.1 に移行されたサイトがあります。

1 つのカスタム メソッド呼び出しに関連する奇妙な日付の問題が発生しています。

特定の日付を 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 で動作するようにこのメソッドを修正するにはどうすればよいですか?

ご覧いただきありがとうございます

4

2 に答える 2

1

別の日付パーサーを使用してみてください。私はこの宝石から多くの価値を見つけました:

https://github.com/mojombo/chronic

于 2013-05-07T16:55:37.163 に答える
0

1.次のファイルを作成します。

rails_app_root_directory/config/initializers/date_formats.rb

2.日付形式をそこに入れます:

Date::DATE_FORMATS[:ship_date] = "%m/%d/%Y"

3. コントローラーで必要に応じて使用して、Date オブジェクトをフォーマットします。

Date.today.to_formatted_s(:ship_date)

出力: 「2013 年 5 月 7 日」

4.レールの再起動を忘れずに!

于 2013-05-07T17:31:49.877 に答える