2013-12-19 9 views
5

Ich brauche die aktuelle Woche Nummer, wenn ich mich nicht völlig irre, ist es jetzt Woche 51? Beim Testen in der Konsole bekomme ich das jedoch.Ruby On Rails, Woche Nummer ist nicht die richtige (-1)

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 

Warum ist das?

Antwort

14

Time.now.strftime('%V') geben Ihnen die Wochennummer nach ISO 8601.

5

Hmm, ich bin nicht sicher, warum es so ist, aber den richtigen mit Ruby zu bekommen, verwende ich diese:

require 'Date' 

week_number = Date.today.cweek #=> 51 
+0

Falls jemand hier landet und nach dem sucht, wonach ich gesucht habe (gerade/ungerade Wochen in Ruby on Rails), ist die obige Antwort hilfreich. Sie können dann 'week_number.even?' Oder 'week_number.odd?' Eingeben. – Tass

6
why is that? 

nach % U oder % W, die Tage im Jahr vor der ersten Woche sind in der Woche 0 (00..53).

mit % V (als @Graeme McLean schrieb), Die Tage im Jahr vor der ersten Woche sind in der letzten Woche des das Vorjahres (01..53).

Von here.