Какой самый эффективный способ получить первый день текущего месяца? - PullRequest
19 голосов
/ 27 октября 2009

С помощью ruby ​​я пытаюсь отформатировать дату следующим образом: 2009-10-01

Где я беру текущую дату (2009-10-26), а затем меняю день на "01".

Я знаю способы сделать это, но мне было любопытно, каков кратчайший путь, мудрый код, чтобы осуществить это.

Ответы [ 7 ]

61 голосов
/ 27 октября 2009

Если вы не против включить ActiveSupport в свое приложение, вы можете просто сделать это:

require 'active_support'
date = Date.today.beginning_of_month
26 голосов
/ 27 октября 2009
Time.parse("2009-10-26").strftime("%Y-%m-01")
13 голосов
/ 27 октября 2009
require 'date'    
now = Date.today
Date.new(now.year, now.month, 1)
2 голосов
/ 03 ноября 2014

Если вам нужен объект даты без ActiveSupport, вы можете вернуться к последнему дню прошлого месяца и набрать сумму 1.

Date.today - Date.today.mday + 1
0 голосов
/ 05 января 2018

Наиболее эффективно получить дату начала и окончания текущего месяца

@date = DateTime.now   
@date.beginning_of_month
@date.end_of_month
0 голосов
/ 14 августа 2013
require 'active_support/core_ext'
Date.today.beginning_of_month
0 голосов
/ 27 октября 2009

Это работает ...

Не очень умно: /

require 'date'
Date.parse(Date.parse("2009-10-26").to_s[0,8] << "01")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...