慢性病是否有任何日期格式选择?(红宝石)

Rad*_*dek 3 ruby date chronic

我需要慢慢地告诉我,日期的格式是天 - 月 - 年可能吗?我传给慢性病的数据也可能是今天/昨天/ 2天前的文字.

目前慢性病给了我2 Dec 2010而不是12 Feb 2010来自12-02-2010

我能想到的唯一解决方案是在将字符串传递给慢性字符之前交换日期和月份.

require 'chronic'   

puts "12-02-2010 = #{Chronic.parse('12-02-2010')}"  #should be 12 Feb 2010


puts "yesteday = #{Chronic.parse('yesterday')}" #working ok
puts "Today = #{Chronic.parse('today')}"        #working ok
Run Code Online (Sandbox Code Playgroud)

Dor*_*ian 15

我被问到20个月之后,今天我发现了这个问题.似乎有一种方法可以指示交换月和日.只需使用:endian_precedence选项:

:endian_precedence(Array) - 默认值:[:middle,:little] - 默认情况下,Chronic将解析"03/04/2011"作为第三个月的第四天.或者,您可以通过更改:endian_precedenceto 来告诉Chronic将其解析为第四个月的第三天[:little, :middle]

这里的例子:

Chronic.parse('12-02-2010').strftime('%d %b %Y')   #=> 02 Dec 2010 
Chronic.parse('12-02-2010', :endian_precedence => [:little, :median]).strftime('%d %b %Y') #=> 12 Feb 2010
Run Code Online (Sandbox Code Playgroud)

希望这可以帮助!

多利安