ruby-on-rails - Rails - 确定星期几

标签 ruby-on-rails ruby datetime dayofweek weekday

所以 DateTime.current 返回 Fri, 11 Mar 2016 19:34:10 +0000

如何确定星期几。例如,如果 DateTime.current 是星期五(只是星期几,与日期无关)?

DateTime.current == DateTime.parse("Friday") 将不起作用,因为 DateTime.parse("Friday") 返回 Fri, 11 Mar 2016 00:00:00 +0000 这不一样。

如何检查是否只有日期或时间等于特定值?

提前致谢!

基本上我想看看 DateTime.current 是不是周末也不是公共(public)假期并且是在办公时间之间

最佳答案

在 Ruby 2.1.1 中,Date 类有一个 friday? 方法

Returns true if the date is a friday

首先,需要date

require 'date'

然后用当前日期创建一个新的日期实例。这是一个例子

current_time = Time.now
year = current_time.year
month = current_time.month
day = current_time.day

date = Date.new(year, month, day)
date.friday?
=> true

根据您的编码偏好,您可以将其进一步干燥

date = Date.new(Time.now.year, Time.now.month, Time.now.day)
=> #<Date: 2016-03-11 ((2457459j,0s,0n),+0s,2299161j)>
date.friday?

如果您想不用 bool 方法(通常以问号结尾并返回 truefalse)来解决这个问题,例如与数据库列进行比较时,可以使用 Date#wday 方法。请记住,这将返回 (0..6) 范围内的数字,其中 0 代表星期日。这意味着您要传入 5 以检查星期五。

if date.wday == 5
  // Do something
end

此外,如果您在营业时间工作,使用 business_time gem 可能是最简单的方法

您还可以在 business_time 中包含 holidays gem。

首先,安装gems

gem install business_time
gem install holidays

然后需要 gem

require 'business_time'
require 'holidays'

判断今天是不是工作日

Date.today.workday?

and is a holiday

您现在可以使用类似这样的方法来确定今天是否是假期

Holidays.on(date, :us).empty?

and is between office working hours

办公时间的定义因人而异。没有一成不变的答案。但是,使用 business_time gem,您可以设置配置

BusinessTime::Config.beginning_of_workday = "8:30 am"
BusinessTime::Config.end_of_workday = "5:30 pm"

来源

ruby

http://ruby-doc.org/stdlib-2.1.1/libdoc/date/rdoc/Date.html#method-i-wday

http://ruby-doc.org/stdlib-2.1.1/libdoc/date/rdoc/Date.html#method-i-friday-3F

gem

https://github.com/bokmann/business_time

https://github.com/holidays/holidays

关于ruby-on-rails - Rails - 确定星期几,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35948531/

相关文章:

datetime - Twitter 使用什么日期的 RFC?

php - 我们如何在 PHP 中添加两个日期间隔

ruby-on-rails - Ruby on Rails 是否鼓励人们违反 YAGNI?

mysql - 如何使用 Rails 解决 MySQL 锁定超时错误?

ruby-on-rails - 最佳调优实践,使用Puma + Heroku + Rails 4 + Ruby 2.0的经验

sql - 使用多个 Arel OR 子句时省略链式括号

ruby - Hash.each 中的最后一个元素

php - 时间超过30秒错误?文件获取内容

ruby - "export RUBYLIB=<path>/gem/lib"有什么作用?

ruby-on-rails - 启动 Ruby on Rails 应用程序时无法通过 AWS Elastic Beanstalk "Congratulations"屏幕