Tag: 日期

Rails:是否有距离获取最接近今天的Date对象?

鉴于约会,我如何在Rails中找到最近的星期一? 我知道我可以这样做: Date.tomorrow Date.today 是不是像Date.nearest:星期一?

Rails:在时区中获取#beginning_of_day

我有一个rails应用程序的默认时区设置。 和Date对象的一个​​实例。 如何让Date#beginning_of_day返回指定时区内的一天的开始,而不是我当地的时区。 是否有其他方法可以在给定日期的指定时区内开始白天时间? date = Date.new(2014,10,29) zone = ActiveSupport::TimeZone.new(‘CET’) date.foo(zone) # should return “Wed, 29 Oct 2014 00:00:00 CET +01:00” zone = ActiveSupport::TimeZone.new(‘UTC’) date.foo(zone) # should return “Wed, 29 Oct 2014 00:00:00 UTC +00:00”

如果超过24小时,Mysql“Time”类型在Rails中给出“ArgumentError:参数超出范围”

我正在一个遗留的mysql数据库上编写一个rails应用程序,它也提供了一个PHP生产工具。 由于这种设置,我无法更改数据库结构。 我遇到的问题是两个表有一个“时间”属性(持续时间),只要时间低于24:00:00 rails处理这个,但是一旦rails遇到类似39:00:34的东西我得到这个“ArgumentError:参数超出范围”。 我已经研究过这个问题并看到rails如何处理时间类型,从我的理解中它将它视为日期时间,因此值为39:00:34会抛出此错误。 我需要一些映射/或更改类型转换的方法,所以我不会得到这个错误。 将值读取为字符串也可以。 任何想法将是最受欢迎的。 干杯

如何在Rails中的date_select帮助器中设置默认日期

我正试图在我的Rails应用程序(2.3.5)中设置一个生日助手的日期。 目前它是这样的。 Time.now.year – 110, :end_year => Time.now.year %> 这会生成一组function完善的日期字段,但工作正常但…… 它们默认为今天的日期,这对于出生日期并不理想(我不确定是什么,但除非你今天运行新生儿单位的日期似乎不太理想)。 我想让它读取2010年1月1日(或2011年或其他任何年份)。 使用:default选项已certificate不成功。 我尝试了很多可能性,包括; {:year => Time.now.year, :month => ‘Jan’, :day => 1}, :start_year => Time.now.year – 110, :end_year => Time.now.year %> 和 Time.local(2010,’Jan’,1), :start_year => Time.now.year – 110, :end_year => Time.now.year %> 这些都不会改变第一个示例的行为。 默认选项是否实际如所描述的那样工作? 看起来这应该是一件相当简单的事情。 助教。

Rails / Postgresql SQL差异w /日期

在psql中运行以下查询时,我得到7个结果: SELECT generate_series(‘2012-10-14’, CURRENT_DATE, interval ‘1 day’); # 7 但是当我在rails应用程序中运行完全相同的查询时,我得到8个结果: result = ActiveRecord::Base.connection.execute “SELECT generate_series(‘2012-10-14’, CURRENT_DATE, interval ‘1 day’);” puts result.count # 8 这似乎与时区有关,但我不知道问题是什么。 我在我的application.rb中有以下内容 config.time_zone = ‘Eastern Time (US & Canada)’ 这与我在postgresql.conf中的时区设置相同 我很困惑为什么我的rails应用程序为我的结果添加了额外的一天。 谁能提供一些见解? 这似乎只发生在一天结束时(晚上8点之后)所以这就是让我认为这是时区偏移的原因。

Rails不会为fixture生成created_at

我有一个模型问题,其中包含“question_id”,“elapsed_time”,“allowed_time”和“status”作为其字段,以及一个名为Reporting的控制器,它接收包含问题的JSON并保存。 (“question_id”与我的任何模型无关) 到目前为止没有问题。 直到我尝试运行一些测试。 当Rails尝试加载我的问题夹具时出错: ActiveRecord::StatementInvalid: SQLite3::ConstraintException: questions.created_at may not be NULL: INSERT INTO “questions ” 这是我的装备: one: id: 1 question_id: MyString app: MyString guid: 1 status: 1 elapsed_time: 1 allowed_time: 1 和我的模特: class CreateQuestions < ActiveRecord::Migration def change create_table :questions do |t| t.string :app t.integer :guid t.string :question_id t.integer :elapsed_time t.integer :allowed_time t.datetime :happened_at […]

如何在具有可变日期的Rails中搜索日期范围

我怎么能在rails active record中做到这一点? 找到所有匹配的模型(created_at +本月之间100天) 编辑:好的,对不起,这不是我在Rails 3.0方式中的活动记录中要做的事情: select distinct p.ID from patients p inner join vaccines_patients vp on p.ID = vp.patient_id inner join vaccines v on v.ID = vp.VACCINE_ID where month(vp.appliedAt + INTERVAL v.duration DAY) = month(now()) 我想得到一个类似的查询,但使用活动记录中的位置。

Ruby sort_by用于MySQL返回的数组,日期格式为字符串

我有一个有task表的数据库。 在该表中,有一个date列。 这些日期格式化为字符串,它们不是Date 。 我正试图按日期对这些任务进行排序。 我已经有一系列名为tasks 。 我正在尝试使用以下代码将其替换为名为tasksByDate的已排序数组。 tasksByDate = tasks.sort_by do |task| task[:date].to_date end 我得到的错误是: TypeError: no implicit conversion of Symbol into Integer 我也试过没有to_date只是为了看看它是否会在没有日期的情况下对其进行排序,而只是一个字符串。 date字段的格式为字符串,如2016-08-29 。 我在代码中的其他地方使用了to_date方法,它工作得很好,所以我并不认为这是问题所在。 编辑1 我已经检查过任务实际上包含一个日期,并且它的格式与解释相同。 p task.class的输出是Array 编辑2 p task的输出是 [#]

UTC格式的ROR + TodayDate

如果我有@today = Date.today.to_s ,如何将@today into UTC转换@today into UTC (仅适当的日期)? 我需要的只是2011-03-08的日期,即2011年3月8日。请提出建议? 我正在寻找昨天的日期?

找出当前时间是否介于两次之间

我有两个时间列存储在Postgresql数据库中: open_time和close_time 。 我试图找出当前时间,忽略日期,是否在两次之间,忽略了日期。 此代码比较日期和时间: current_time = Time.now if current_time.between?(store.open_time, store.close_time) puts “IN BETWEEN” end 例如,当current_time # => 2018-06-06 23:59:49 -0600和open_time # => 2000-01-01 22:59:00 UTC时,它不起作用。 如何让它不包括日期,只是比较时间?