2009-10-26 15 views

Odpowiedz

25
Time.parse("2009-10-26").strftime("%Y-%m-01") 
+4

To tylko przykład ... każda zmienna mogłaby zastąpić ten ciąg .. – Starkers

+0

Dzięki ... pisanie z przyszłości i to zadziałało dla mnie =) –

10
require 'date'  
now = Date.today 
Date.new(now.year, now.month, 1) 
+2

uważaj na początkowe zera w niecytowanych liczbach całkowitych: to jest notacja ósemkowa. Będzie działać poprawnie, dopóki nie wpiszesz 08 lub 09. – jes5199

+0

Naprawiono problem teraz i dnia. Dzięki! – CodeJoust

+0

+1 Ta odpowiedź nie wymaga active_support – ksiomelo

0

To działa ...

Nie strasznie mądry:/

require 'date' 
Date.parse(Date.parse("2009-10-26").to_s[0,8] << "01") 
55

Jeśli nie przeszkadza w tym ActiveSupport w aplikacji, można po prostu to zrobić:

require 'active_support' 
date = Date.today.beginning_of_month 
+0

Otrzymuję 'require ': nie mogę załadować takiego pliku - activesupport (LoadError)'. – JoaoHornburg

+1

wymagają 'active_support' – avguchenko

+0

dzięki za ten początek_odstępu miesiąca – franchez

0
require 'active_support/core_ext' 
Date.today.beginning_of_month 
+0

Powoduje to powrót do pierwszego dnia roku, a nie do miesiąca. –

1

Jeśli potrzebujesz obiekt datą bez ActiveSupport, można wrócić do ostatniego dnia ostatniego miesiąca i sumy 1.

Date.today - Date.today.mday + 1 
+1

Myślę, że powinieneś zmienić to na 'Date.today - Date.today.mday + 1' – ishan

0

Najbardziej wydajny, aby uzyskać termin rozpoczęcia i zakończenia bieżącego miesiąca

@date = DateTime.now 
@date.beginning_of_month 
@date.end_of_month 
Powiązane problemy