【问题标题】:Chronic - how to set a default year when parsing a month慢性 - 解析月份时如何设置默认年份
【发布时间】:2013-06-13 16:14:55
【问题描述】:

我有一个用户输入日期的输入字段,目前我正在使用 Chronic 并且用户喜欢它。

如果用户使用 Chronic 和 strftime 输入 last jan,我会得到 January 2013,这很好,问题出现在:

用户输入的是即将到来的月份,例如一月,我正在执行的解析返回 2014 年 1 月,而不是用户想要的 2013 年 1 月。

result_date = Chronic.parse(params[:date]).strftime('%B %Y')

有没有办法可以将当前年份设置为默认值?那么当用户输入一月时,它会被解析为 2013 年 1 月?

谢谢!

【问题讨论】:

    标签: ruby-on-rails ruby strftime chronic


    【解决方案1】:

    我想通了!

    result_date = Chronic.parse(params[:date], :context => :past).strftime('%B %Y')
    

    现在,如果用户输入的是像 Jan 这样的一个月,则结果将是 2013 年 1 月

    我希望它可以帮助别人!

    【讨论】:

    • 您是否在同一年内的下一个月对其进行了测试?例如,您在 2013 年 6 月提出这个问题。如果您使用 :context => :past 解析“七月”,您应该得到 2012,而不是 2013。
    • 是的,在我的情况下工作正常,这个日期用于从数据库中提取数据,因此没有未来的数据可用。当用户输入 July 时,在这种情况下,它指的是上个月或上一年。
    猜你喜欢
    • 1970-01-01
    • 2015-09-07
    • 1970-01-01
    • 1970-01-01
    • 2021-04-16
    • 2014-06-25
    • 2012-09-13
    • 2013-05-17
    • 1970-01-01
    相关资源
    最近更新 更多