Rails - 确定星期几

Rails - Determine the day of the week

所以DateTime.currentreturnsFri, 11 Mar 2016 19:34:10 +0000.

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

DateTime.current == DateTime.parse("Friday") 不会工作,因为 DateTime.parse("Friday") returns Fri, 11 Mar 2016 00:00:00 +0000 不一样。

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

提前致谢!

基本上我想看看DateTime.current是不是周末也不是public假期,是不是上班时间

在 Ruby 2.1.1 中,日期 class 有一个 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?

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

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

此外,如果您在上班时间工作,使用 business_time gem

可能最简单

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

首先,安装 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

宝石

https://github.com/bokmann/business_time

https://github.com/holidays/holidays

检查这个-

require 'date'
today = DateTime.current.to_date

if today.Friday?
  puts "Today is a Friday!"
end

您可以使用如下内容:

day = DateTime.now.strftime("%A")

这将 return 全名大写的星期几。你也可以得到这样的缩写:

day = DateTime.now.strftime("%a")

您还可以使用 %u 或 %w 将星期几作为整数获取。星期五是 5.

DateTime.now.strftime("%u") == 5 # True if Friday

您可以在此处查看更多功能:

APIdock documentation