DateTime.current.wday
开始计算周日的一周。
我希望从周一开始计算周数。
我没有发现这种差异。
今天的工作日如何以数字表示形式获得?
答案 0 :(得分:4)
我认为传统的几周被认为是星期日作为一周的第一天。如果你想把这一周表示为从不同的一天开始,例如星期一,你可以做类似的事情
(DateTime.current.wday + 6) % 7
除此之外,我相信有一个strftime来获得你想要的东西,但它会以字符串的形式返回。
答案 1 :(得分:3)
Ruby中的wday
方法总是会给你0到6的值,其中0是星期日,因为这是它的定义。
如果您想要1到7范围内的工作日编号(其中1表示星期一),请改用strftime('%u')
。使用'%w'
将为您提供0到6的范围(其中0表示星期日)。
2.0.0-p247 :001 > Date.new(2014,5,4).strftime('%u')
=> "7"
2.0.0-p247 :002 > Date.new(2014,5,4).strftime('%w')
=> "0"
2.0.0-p247 :003 > Date.new(2014,5,4)
=> Sun, 04 May 2014
您认为本周开始的时间根据您在世界的不同而不同。 Rails为您提供了Date.beginning_of_week=(week_start)
方法,允许您更改此方法,但星期一被视为默认值。