有没有办法在Rails中获得上周五的日期?我已经看到了如何获得最接近的星期五,或者上周一或周日,但我特别需要上周五.
因此,直到本周的周五,也就是上周五的周五.然后从星期六开始,这是前一天的星期五.
例如:
> 3月4日星期六,3月10日星期五 – > 3月3日星期五
> 3月11日星期六至3月5日星期五. 17日 – > 3月10日星期五
解决方法
这是一种没有任何条件的方法.这将接受Date,Time或DateTime对象.
def prior_friday(date) days_before = (date.wday + 1) % 7 + 1 date.to_date - days_before end
现在你可以做以下任何一件事:
>> prior_friday(Date.today) => Fri,24 Mar 2017 >> prior_friday(Date.tomorrow) => Fri,31 Mar 2017 >> prior_friday(Date.new(2017,4,4)) => Fri,31 Mar 2017 >> prior_friday(Time.Now) => Fri,24 Mar 2017 >> prior_friday(DateTime.tomorrow) => Fri,31 Mar 2017 >> prior_friday(1.year.from_Now) => Fri,30 Mar 2018
对于一周中的不同日期,在应用mod之前更改添加到date.wday的整数:
def prior_monday(date) days_before = (date.wday + 5) % 7 + 1 date.to_date - days_before end
或制作通用方法:
def prior_weekday(date,weekday) weekday_index = Date::DAYNAMES.reverse.index(weekday) days_before = (date.wday + weekday_index) % 7 + 1 date.to_date - days_before end
示例运行于2018年8月4日星期六:
>> prior_weekday(Date.today,'Saturday') Sat,28 Jul 2018 >> prior_weekday(Date.today,'Friday') Fri,03 Aug 2018 >> prior_weekday(Date.tomorrow,04 Aug 2018 >> prior_weekday(Date.tomorrow,'Sunday') Sun,29 Jul 2018
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。