2010-07-14 4 views
2

Comment puis-je obtenir un objet Time correspondant au début du mois civil en cours? Par exemple, si je courais la fonction aujourd'hui je reçois un objet Time pour 7/1/2010 à minuitObtenir l'heure correspondant au début du mois en cours

Question bonus: Comment puis-je faire la même chose pour la semaine en cours ? Si je courais cette fonction aujourd'hui je reçois un objet Time pour 7/11/2010 à minuit

Répondre

1

Rails de ActiveSupport a des aides pour toutes ces choses (beginning_of_month, beginning_of_week, etc.)

3
Date.civil(Date.today.year, Date.today.month, 1) 

Bonus, pour obtenir le dimanche:

Date.commercial(Date.today.year, Date.today.cweek - 1, 7) 

Pour obtenir le lundi

Date.commercial(Date.today.year, Date.today.cweek, 1) 

Ressources: http://ruby-doc.org/core/classes/Date.html

Edit: j'ai changé mon esprit le dimanche, vous auriez des questions à l'être égrenage d'une année. Donc, je ferais ce lieu pour obtenir dimanche

Date.commercial(Date.today.year, Date.today.cweek, 1) - 1 
0

Essayez ceci:

Time.utc(Time.new.year,Time.new.month) 

Voir aussi Time.gm, Time.local (tout ce que vous avez besoin)

Questions connexes