I need the current week number, if I'm not totally mistaken it's week 51 right now? However when testing it in the console I get this.

Time.now
=> 2013-12-19 11:08:25 +0100
Time.now.strftime('%U')
=> "50"

Date.today
=> Thu, 19 Dec 2013
Date.today.strftime("%U").to_i
=> 50

Why is that?

有帮助吗?

解决方案

Time.now.strftime('%V') will give you the week number according to ISO 8601.

其他提示

why is that?

according to %U or %W, The days in the year before the first week are in week 0 (00..53).

with %V (as @Graeme McLean wrote), The days in the year before the first week are in the last week of the previous year (01..53).

From here.

Hmm, I'm unsure as to why it is that way, but to get the correct one using Ruby, I use this:

require 'Date'

week_number = Date.today.cweek #=> 51
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top