Rail的end_of_month()方法始终返回30作为最后日期

时间:2019-06-07 08:08:13

标签: ruby-on-rails ruby time

我正在使用ruby 2.3.6和rails 5.1,并想返回上个月的最后日期。根据当前时间应该是2019年5月31日。

所以我用过

DateTime.now.end_of_month.prev_month 

得到

Sat, 30 May 2019 23:59:59 +0530

作为响应,但应为31。3月和1月我也尝试过相同。知道为什么这种行为吗?

2 个答案:

答案 0 :(得分:2)

尝试

DateTime.now.prev_month.end_of_month

只需切换最后两个电话

答案 1 :(得分:1)

prev_month是不会更改的方法,不会考虑日期或日期,而只会获取上个月的数据。

您可以使用二月月份进行验证,

(DateTime.now.end_of_month - 4.month).prev_month