使用Ruby(DateTime)检索月份的第一天和最后一天

时间:2017-05-10 11:44:30

标签: ruby datetime

如何使用Ruby(DateTime)检索月份的第一天和最后一天?

我想创建从第一天开始并在该月的最后一天结束的发票。

2 个答案:

答案 0 :(得分:6)

使用beginning_of_monthend_of_month方法

irb(main):004:0> n = DateTime.now
=> Wed, 10 May 2017 14:48:01 +0300
irb(main):005:0> n.to_date.beginning_of_month
=> Mon, 01 May 2017
irb(main):006:0> n.to_date.end_of_month
=> Wed, 31 May 2017

答案 1 :(得分:6)

给出一年零一个月:

year = 2017
month = 5

您可以将这些日期值1-1传递给Date.new以分别获得第一天和最后一天:

require 'date'
Date.new(year, month, 1)  #=> #<Date: 2017-05-01 ...>
Date.new(year, month, -1) #=> #<Date: 2017-05-31 ...>