2009-10-26 3 views

Répondre

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

C'est juste un exemple ... n'importe quelle variable pourrait remplacer cette chaîne .. – Starkers

+0

Merci ... écrire du futur et cela a fonctionné pour moi =) –

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

soyez prudent avec les zéros de tête dans les entiers non cotés: c'est la notation octale. Cela fonctionnera bien jusqu'à ce que vous tapez 08 ou 09. – jes5199

+0

Correction du problème de maintenant et le jour. Merci! – CodeJoust

+0

+1 Cette réponse ne nécessite pas de support actif – ksiomelo

0

Cela fonctionne ...

Pas très intelligent:/

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

Si vous ne me dérange pas, y compris ActiveSupport dans votre application, vous pouvez simplement faire ceci:

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

Je reçois 'require ': impossible de charger un tel fichier - activeupport (LoadError)'. – JoaoHornburg

+1

require 'active_support' – avguchenko

+0

merci pour cet astuce begin_of_month – franchez

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

Ceci renvoie le premier jour de l'année, pas celui du mois. –

1

Si vous avez besoin de l'objet date sans ActiveSupport, vous pouvez revenir au dernier jour du dernier mois et somme 1.

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

Je pense que vous devriez le changer en 'Date.today - Date.today.mday + 1' – ishan

0

le plus efficace pour obtenir date de début et de fin du mois en cours

@date = DateTime.now 
@date.beginning_of_month 
@date.end_of_month 
Questions connexes