Tag: time

如何检查给定时间是在下午3点之后或不在Rails中?

我想要最简单或最简单的方法,它返回给我布尔值(true / false),具体取决于给定的时间是在下午3点之后,或者与日期无关。 对于前: – def after_three_pm(time) //some code here end time= Time.now # Tue Jul 26 11:17:27 +0530 2011 THEN after_three_pm(time) # should return false time= Time.now # Tue Jul 26 15:17:27 +0530 2011 THEN after_three_pm(time) # should return true

获取Rails ActiveRecord’datetime’属性作为DateTime对象

我的一个模型中有一个包含日期/时间值的属性,并在我的迁移中使用t.datetime :ended_on声明。 当我使用myevent.ended_on获取此值时,我得到一个Time对象。 问题是,当我尝试将此属性用作Flotilla图表中的轴时,它无法正常工作,因为Flotilla仅将日期识别为Date或DateTime对象。 我想过编写一个将现有Time值转换为DateTime的虚拟属性,但是我很担心这样做,因为我听说时间不能处理2040年以后的日期,我不希望有可能造成“2040虫子”后来担心。 有没有什么办法可以说服ActiveRecord为这个属性而不是Time对象返回DateTime对象?

如何编写仅查看日期时间字段的时间组件的activerecord查询?

是否可以执行仅查看日期时间字段的时间组件的activerecord查询? 例如Battle.where(‘start_time ?’,’12:00′,’06:00′) 找到所有在早上6点到中午12点之间开始的战斗而不管它们发生的那一天? 在此示例中,start_time被定义为日期时间。

如何使用Active Support核心扩展?

我安装了Active Support 3.0.3,使用Ruby 1.8.7安装了Rails 3.0.3。 当我尝试使用1.week.ago我得到了 NoMethodError: undefined method ‘week’ for 1:Fixnum from (irb):2 其他核心扩展似乎有效。 我在朋友的计算机上尝试过(相同的安装规格和遗留版本都在他的计算机上),结果相同。 是什么赋予了? 所有这些都在IRB中。

rails – 在保存到服务器之前将DateTime转换为UTC

我不知道如何,但我的控制台和我的服务器有两个不同的DateTime.now时区。 如果我在控制台中运行DateTime.now,则返回以下内容: Wed, 04 Dec 2013 14:27:23 -0500 但是,我的任务模型中有以下内容: def self.already_expired where(“time_frame < ?", DateTime.now) end 上面代码的目标是在’time_Frame’是过去日期的任务上触发一些任务方法。 这是我调用方法的地方: task :change_it => :environment do puts “yo yo you yo you” @tasks = Task.already_expired @tasks.each do |task| puts “Kalabar” + task.inspect + “now time is:” + DateTime.now.to_s end end 服务器日志显示如下: Task Load (1.2ms) SELECT “tasks”.* FROM “tasks” […]

UTC时间重置为2000-01-01(ruby)。 如何防止重置时间?

我正在使用任务和电子表格gem将excel电子表格读入我的数据库。 我正在读的其中一个栏目是“start_time”。 为此,我正在形成一个值数组,然后逐个传递每个数组值。 cnum_array = [] # for start times sheet1.each 3 do |row| unless row[9].blank? time = Time.parse(row[9]) cnum_array << time.utc end end count = 0 for course in Course.all course.update_attribute :start_time, cnum_array[count] count += 1 end 这似乎工作正常。 如果我在最后一个循环中插入“puts course.start_time”语句,则会打印出正确的时间。 像这样: count = 0 for course in Course.all course.update_attribute :start_time, cnum_array[count] puts course.start_time count […]