gpt4 book ai didi

ruby-on-rails - 如何按星期几 ruby​​ 获取日期

转载 作者:数据小太阳 更新时间:2023-10-29 08:18:07 25 4
gpt4 key购买 nike

我正在创建 Rails 应用程序,我需要将日历放入其中。我有一个 json 数据,每周发送一次到应用程序。 JSON 对象有这样的东西:

route: "Monday"

route: "Saturday"

我需要把一周中的这一天作为平常的日期(每周计算的日期,从发送 JSON 的那天开始),例如今天发送的 JSON 对象,我应该给所有这些对象一个日期,路线:“星期六”应该给我 2017 年 6 月 24 日。希望你理解我的问题:)

最佳答案

要在 Rails 中获取当前日期,您可以使用:

Date.today

要获取前一个星期六(因为今天是 7 月 3 日星期一,也就是 7 月 1 日星期六),您可以使用:

Date.today.beginning_of_week(:saturday)

或者,如果您真正想要的是周的星期六(6 月 24 日,星期六),那么您可以使用:

Date.today.weeks_ago(1).beginning_of_week(:saturday)

或者,如果您愿意:

1.week.ago.beginning_of_week(:saturday)

...但是,请注意,上面的代码将返回一个 ActiveSupport::TimeWithZone 对象而不是一个 Date 对象 - 因此行为会略有不同。

通读 Rails 文档 - 特别是 ActiveSupport extensions to ruby's Date class 以查看可用的方法。

如果出于某种原因,您需要在纯 ruby 中执行此操作(即没有上面提到的与 rails 捆绑在一起的 ActiveSupport 扩展>),那么您可以改用 Date.parse method :

require 'date'

Date.parse("Saturday") - 7
# => Sat, 01 Jul 2017

为了将您的Date(或类似的)对象转换为您想要的字符串格式("24-June-2017"),您可以使用ruby 的strftime 方法:

(Date.parse("Saturday") - 7).strftime('%d-%B-%Y')

在 rails 中,将此类自定义日期格式放置在语言环境或初始化程序中以避免重复是 common convention。然后您可以按名称引用此格式:

# config/initializers/date_formats.rb
# (Call this whatever you want!)
Date::DATE_FORMATS[:calendar] = '%d-%B-%Y'

# Anywhere else in the rails app
Date.today.beginning_of_week(:saturday).to_s(:calendar)
# => "01-July-2017"

关于ruby-on-rails - 如何按星期几 ruby​​ 获取日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44887685/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com