在我的本地Rails控制台中,传递9/31/2011会返回10/1/2011
[1] pry(main)> Date.strptime("09/31/2011", '%m/%d/%Y')
=> Sat, 01 Oct 2011
在heroku控制台中,它引发ArgumentError:
irb(main):002:0> Date.strptime("09/31/2011", '%m/%d/%Y')
ArgumentError: invalid date
from (irb):2:in `strptime'
答案 0 :(得分:1)
再次检查您的Gemfile开发依赖项是否不包含可能与Date的strptime函数混淆的东西。
例如,Timecop gem为该方法设置Date.strptime的别名: https://www.rubydoc.info/gems/timecop/Date.strptime_with_mock_date
最后只是致电Time.strptime(str, fmt).to_date
。
此行为与您报告的行为非常相似:
irb(main):001:0> Date.strptime("09/31/2011", '%m/%d/%Y')
ArgumentError: invalid date
from (irb):1:in 'strptime'
irb(main):002:0> Time.strptime("09/31/2011", '%m/%d/%Y').to_date
=> Sat, 01 Oct 2011