Ruby-将星期几转换为整数

时间:2018-11-20 14:55:21

标签: ruby-on-rails ruby date

如何将日期字符串(即"Monday""Wednesday")转换为相应的wday整数(13)?

我想出了这种复杂的方式

Date.today.beginning_of_week("Monday".downcase.to_sym).wday

2 个答案:

答案 0 :(得分:5)

您可以使用strptime对其进行解析:

Date.strptime('Monday', '%A').wday
#=> 1

Date.strptime('Wednesday', '%A').wday
#=> 3

中间日期对象引用当前星期中的工作日:

Date.today
#=> #<Date: 2018-11-20 ...>

Date.strptime('Monday', '%A')
#=> #<Date: 2018-11-19 ...>

您还可以使用_strptime(带下划线前缀)提取单个工作日中恰好是:wday的日期元素:

Date._strptime('Monday', '%A')
#=> {:wday=>1}

答案 1 :(得分:0)

您可以使用CHRONIC宝石。

  

Chronic是Tom编写的Ruby自然语言日期/时间解析器   Preston-Werner(@mojombo),它采用令人惊讶的人类可读文本   并将其转换为日期。 (http://robdodson.me/playing-with-ruby-dates/

您可以这样使用:

require 'chronic'

Chronic.parse('Monday').wday
=> 1

希望对您有所帮助!