Tag: datetime

Rails 4 – 将datetime转换为单独的日期和时间字段

如何将mysql datetime字段转换为两个表单字段(1)仅限日期,(2)仅限时间,并将两个字段组合回表单提交的日期时间格式? 这将允许使用以下gem,但将日期存储在单个日期时间字段中: gem ‘bootstrap-datepicker-rails’ gem ‘bootstrap-timepicker-rails’ 提前致谢!

rails – 按天和小时分组

我想创建一个每天每小时创建的项目数组。 我正在追踪人们的感受,因此我的模型被称为TrackMood它只有一个名为mood和时间戳的列。 如果我做 TrackMood.where(mood: “good”).group(“hour(created_at)”).count 我得到类似{11 => 4,12 => 2,13 => 2,15 => 1}的东西 我这里有2个问题 1如何将这一天添加到此中,以便它不仅仅将昨天11点创建的项目添加到今天11点添加的项目中? 2当没有创建任何内容时,如何确保它显示0小时?

为什么这个rails查询的行为取决于时区?

我有一个基于时间的rails查询,它有一些奇怪的时区敏感行为,即使据我所知我使用的是UTC。 简而言之,这些查询给出了不同的答案: >> Model.find(:all,:conditions=>[‘created_at 279 >> Model.find(:all,:conditions=>[‘created_at 280 DB实际上包含在过去一小时内创建的一个模型,并且模型总数为280.因此只有第一个查询是正确的。 但是,在environment.rb中,我有: config.time_zone = ‘UTC’ 系统时区(由“日期”报告)是BST(GMT + 1) – 因此不知何故,这会被视为UTC并打破查询。 这引起了我各种各样的问题,因为我需要将在不同时间传递的查询参数化为一个动作(然后使用Time.parse()进行转换),即使我以UTC时间发送,这个’关闭一小时’DST问题很多。 即使使用’.gmtime()’也似乎并不总能修复它。 显然,这种差异是由某个地方的隐式转换造成的,导致BST被错误地视为UTC,但为什么呢? rails是否以UTC格式存储时间戳? Time class timezone不是很清楚吗? 我正在使用Rails 2.2.2 那么这里发生了什么 – 围绕它编程的安全方法是什么? 编辑,一些额外的信息来显示DB和Time类正在做什么: >> Model.find(:last).created_at => Tue, 11 Aug 2009 20:31:07 UTC +00:00 >> Time.now => Tue Aug 11 22:00:18 +0100 2009 >> Time.now.gmtime => Tue Aug […]

为一个属性使用多个输入字段

我是铁杆的新手,很抱歉,如果这个太容易了。 我的模型中有一个datetime属性,我尝试用3个表单元素将值放入其中。 第一个是日期,是一个输入forms(我使用bootstrap-datepicker-rails,我想坚持下去)。 在第二个我想要一个小时的选择框,第三个是分钟。 所以我看到我可以使用DateHelpers datetime_select但是我再也不能使用bootstrap-datepicker了。 那么通过使用多个表单输入元素来填充属性(日期时间)的正确方法是什么。 我看到有类似assign_multiparameter_attributes但文档不太有帮助:-( 谢谢

Ruby / Rails:将日期时间转换为自然语言(例如3/23/2012到“本周五”)

有没有人知道一个gem,方法或代码片段,它会将日期时间值转换为更加人性化的,而不必创建一系列规则或在视图中放入一堆逻辑? 例如:如果今天是2012年3月19日,转换: 2012年3月23日至“本周五” 3/26/2012至“下周一” 2012年3月31日至“下周末” 2012年4月15日至“下个月” 3/15/2012至“上周四” 2011年3月1日至“去年” 基本上,我正在寻找与慢性gem相反的东西。 更类似于distance_of_time_in_words ,但有一点扭曲。 我不想从数据库中取出日期并按原样显示它们,而是在向最终用户显示时,使它们更加人性化并且具有相关性。

Rails 3.1:在一个时间范围内查询Postgres的记录

在我的应用程序中,我有一个Person模型。 每个Person都有一个属性time_zone ,用于指定其默认时区。 我也有一个Event模型。 每个Event都有一个start_time和end_time时间戳,以UTC时间保存在Postgres数据库中。 我需要创建一个查询,查找特定人员在一天的午夜和下一个午夜之间的事件。 @todays_events控制器变量保存查询结果。 我采用这种方法的部分原因是我可能让其他时区的人查看一个人的事件列表。 我希望他们看到这一天,因为这个人会看到这一天,而不是基于他们作为观察者所在的时区。 无论出于何种原因,我仍然在前一天的@todays_events.结果集中收到一些事件@todays_events. 我的猜测是我将UTC时间戳与非UTC参数进行比较,或者沿着那些线进行比较。 通常,只有在前一天晚上开始或结束的事件才会显示在今天的查询结果列表中。 现在,我正在建立: @today = Time.now.in_time_zone(@person.time_zone).midnight.to_date @tomorrow = (@today + 1.day ).to_datetime @today = @today.to_datetime 我的查询看起来像: @todays_activities = @person.marks.where(“(start_time >= ? AND start_time = ? AND end_time < ?);", @today, @tomorrow, @today, @tomorrow ).order("start_time DESC") 我应该如何改变这一点,以便我保证只收到今天的结果(根据@todays_activities查询中的@person.time_zone @todays_activities ?

ruby on rails多参数属性*如何*工作(datetime_select)

我相信datetime_select是黑魔法。 我真正想弄清楚的是整个1i , 2i , 3i , 4i ……多个参数的东西。 具体如何在后端处理(activerecord,还有其他什么?)。 订单号后面的’i’是什么? 它是一个类型说明符吗? 如果是这样,可用的其他类型是什么? 我已经阅读了date_helper.rb的来源,它非常不透明。 这是我的动机: 我的模型中有一个:datetime列,我希望通过两个text_field输入视图:一个用于日期,一个用于时间。 它们需要经过validation,合并在一起,然后存储到datetime列中。 最终我将使用javascript日历在日期字段中输入日期。 有没有人这样做过? 我尝试使用虚拟属性(除了基本的railscast之外令人难以置信的无记录),问题是当创建一个新的activerecord对象并且具有nil属性时,虚拟属性失败(nil类的未定义方法strftime ,这是有道理的)。 有人有任何建议或最佳做法吗? 谢谢!

Rails更改默认时区

我正在尝试将Rails 3.2.8 app中的默认时区更改为GMT + 04:00,但我不知道该怎么做。 以下解决方案对我不起作用: config.time_zone = ‘Moscow’ config.time_zone = “(GMT+04:00) Moscow” config.active_record.default_timezone = ‘Moscow’ config.active_record.default_timezone = :local 此外,我在rails控制台中尝试了以下内容:ActiveSupport :: TimeZone.all.map(&:name),它返回了一个值列表,包括”Moscow” 。 Time.zone返回(GMT+00:00) UTC Time.zone不正确,应该是(GMT+04:00) UTC 。 然后我更改了Time.zone = “Moscow” , Time.now返回了正确的值(… +0400)。 所以为了修复它,我只使用了Time.now + 4.hour ,但我还需要datetime_select来显示我当地的时间。 Time.now + 4.hour不是正确的解决方案。 请分享任何可以将默认时区设置为其本地值的想法。 先感谢您。

在Rails 4中更改默认日期和时间格式

我一直在寻找一种方法来改变Rails 4中的默认日期格式。

显示用户每天在所有任务上花费的时间

我想显示一个用户在一天内花在所有任务上的时间。 目前我正在使用此查询显示所有用户每天在所有任务上花费的时间: TaskTimeTracker.group(“year(created_at)”).group(“month(created_at)”).group(“day(created_at)”).sum(“time_spent”) 这些是我使用的模型的架构信息。 #Table name: tasks #id :integer not null, primary key #name :string(255) #description :text(65535) #due_date :string(255) #status :integer #priority :integer #project_id :integer #user_id :integer #created_at :datetime not null #updated_at :datetime not null #estimated_time :datetime #start_time :datetime #completion_time :datetime #parent_task_id :integer #task_type :string(255) #author_id :integer #slug :string(255) #Indexes #index_tasks_on_project_id (project_id) #index_tasks_on_slug (slug) UNIQUE […]