Zastanawiam się, w jaki sposób mogę automatycznie utworzyć arrari stylu "sty 21 sty" w ruby (w szynach3)?Zakres dat w tablicy, ruby
Jeżeli dzisiaj jest 06 lutego, wtedy arrary musiałby [ „06 stycznia”, „07 stycznia” ... „06 lutego”]
Zastanawiam się, w jaki sposób mogę automatycznie utworzyć arrari stylu "sty 21 sty" w ruby (w szynach3)?Zakres dat w tablicy, ruby
Jeżeli dzisiaj jest 06 lutego, wtedy arrary musiałby [ „06 stycznia”, „07 stycznia” ... „06 lutego”]
ja nie wiem, czy całkowicie zrozumiał pytanie, ale oto odpowiedź, która może pomóc
(1.month.ago.to_date..Date.today).map{ |date| date.strftime("%b %d") }
Daje na wyjściu
["Jan 07", "Jan 08", "Jan 09", "Jan 10", "Jan 11", "Jan 12", "Jan 13", "Jan 14", "Jan 15", "Jan 16", "Jan 17", "Jan 18", "Jan 19", "Jan 20", "Jan 21", "Jan 22", "Jan 23", "Jan 24", "Jan 25", "Jan 26", "Jan 27", "Jan 28", "Jan 29", "Jan 30", "Jan 31", "Feb 01", "Feb 02", "Feb 03", "Feb 04", "Feb 05", "Feb 06"]
można utworzyć zakres dat, a następnie konwertować je do pożądanego formatu używając strftime
Po prostu upewnij się, że używasz obiektów Date
w swoim zasięgu zamiast obiektów Time
, w przeciwnym razie utworzysz tablicę każdej sekundy zawartej w tym okresie.
** Uwaga: aby podkreślić, że musisz wystrzegać się działania w zakresie czasu, więc upewnij się, że konwertujesz na format daty, jak pokazano powyżej. Dzięki. ** – edavey
Musisz upewnić się, że dodajesz activesupport, 'require 'active_support/all'', jeśli nie masz w szynach3. – slm
Skąd pochodzi "1"? Gdzie jest. Miesiąc. pochodzi z? czy są w akcji? Czy rzecz "1.month.ago" to rzecz Railsów? – JDS
require 'date'
now = Date.today
p (now<<1 .. now).map{ |day| day.strftime("%b %e").squeeze(' ') }
# No railsy .month.ago.to_date silliness!
# the squeeze gets rid of the occasional extra space
wyjściowa:
["Jan 7", "Jan 8", "Jan 9", "Jan 10", (...), "Feb 7"]
Co robi << w odniesieniu do DateTime? Wygląda jak "cofnij się miesiąc", ale ta składnia jest bardzo nieprzejrzysta i nie mogę znaleźć dla niej dokumentacji w klasie DateTime – JDS
DateTime dziedziczy z Data (data jest wymieniona jako nadrzędna w dokumentach). Metoda [<<] (http://www.ruby-doc.org/stdlib-1.9.3/libdoc/date/rdoc/Date.html#method-- 3C-3C) jest tam udokumentowana. Rzeczywiście wraca on miesiąc. – steenslag
Dzięki. Miałem problem z wpisaniem hasła "<<" – JDS
Nie rozumiem pytanie. Czy odpowiedź zależy od aktualnej daty? Jakieś inne wejście? Jak wyglądałoby wyjście? Być może powinieneś podać kilka przykładowych danych wejściowych i wyjściowych i zastanowić się, czy ktoś, kto nie wie nic o twoim problemie, zrozumie to pytanie. – DigitalRoss
Przykro mi z powodu niejasności! zaktualizowałem pytanie :) – Elliot