Ruby on rails 如何更改时间对象上的日期?
如果我有Ruby on rails 如何更改时间对象上的日期?,ruby-on-rails,ruby,Ruby On Rails,Ruby,如果我有 > time = Time.zone.now => Tue, 03 Apr 2018 09:44:14 EDT -04:00 我想要像这样的东西 > time.set_date_to(Date.parse("2018-04-13")) > time => Tue, 13 Apr 2018 09:44:14 EDT -04:00 这是否存在?您可以这样做: time = Time.zone.now.change(year: 2018, month: 4,
> time = Time.zone.now
=> Tue, 03 Apr 2018 09:44:14 EDT -04:00
我想要像这样的东西
> time.set_date_to(Date.parse("2018-04-13"))
> time
=> Tue, 13 Apr 2018 09:44:14 EDT -04:00
这是否存在?您可以这样做:
time = Time.zone.now.change(year: 2018, month: 4, day: 13)
以下是您可以执行的操作:
time = Time.zone.now.change(year: 2018, month: 4, day: 13)
以下是我在《时间》杂志上得到的答案的开始:
class Time
def set_date_to(date_or_date_string)
date = date_or_date_string.is_a?(Date) ? date_or_date_string : Date.parse(date_or_date_string)
change(year: date.year, month: date.month, day: date.day)
end
end
这似乎起作用了从我的答案上跳下来时间:
class Time
def set_date_to(date_or_date_string)
date = date_or_date_string.is_a?(Date) ? date_or_date_string : Date.parse(date_or_date_string)
change(year: date.year, month: date.month, day: date.day)
end
end
如果您不使用Rails项目(或不希望加载
活动\u支持
),则可以使用Ruby的日期
库
使用它,您可以执行基本的时间数学,如下所示:
require 'date'
d = Time.now.utc.to_datetime # Datetime preserves time and date information
d.next_day(10) # same as d + 10
d.prev_day # same as d - 1
d.prev_month(2) # same as d << 2
d.next_month # same as d >> 1
d.to_time # You can convert back to a Time object if needed.
需要“日期”
d=Time.now.utc.to_datetime#datetime保留时间和日期信息
d、 第二天(10)#与d+10相同
d、 上一天#与d-1相同
d、 上个月(2)#与d>1相同
d、 如果需要,可以将时间转换回时间对象。
DateTime
可以处理闰秒/年,但不能处理时区。如果您没有使用Rails项目(或不希望加载active\u支持
),可以使用Ruby的Date
库
使用它,您可以执行基本的时间数学,如下所示:
require 'date'
d = Time.now.utc.to_datetime # Datetime preserves time and date information
d.next_day(10) # same as d + 10
d.prev_day # same as d - 1
d.prev_month(2) # same as d << 2
d.next_month # same as d >> 1
d.to_time # You can convert back to a Time object if needed.
需要“日期”
d=Time.now.utc.to_datetime#datetime保留时间和日期信息
d、 第二天(10)#与d+10相同
d、 上一天#与d-1相同
d、 上个月(2)#与d>1相同
d、 如果需要,可以将时间转换回时间对象。
DateTime
可以处理闰秒/年,但不能处理时区。FYI:您可以使用Time.current
而不是Time.zone.now
FYI:您可以使用Time.current
而不是Time.zone.now