Tag: 时间

显示从数据库到现在最近的未来时间

在我的Ruby on Rails应用程序中,我希望能够在数据库中显示最接近当前时间的下一个未来时间,例如,如果存在时间为13:00,13:30,18的记录,则在数据库中显示:00,19:00等。如果当前时间是13:48,则显示时间18:00。 我有一个类似的事情与日期: = Date.today}.sort_by(&:show_date).first.show_date.strftime(“%A %e %B %Y”) %> 但试图适应这个时间: = Time.now}.sort_by(&:show_time).first.show_time %> 这不起作用,我收到以下错误: undefined method `show_time’ for nil:NilClas 这是因为s.show_time >= Time.now 。 如果我将其更改为s.show_time = Time.now错误发生但是它只显示当前时间而不是数据库中的时间。 值得注意的是,show_date和show_time在同一记录中,例如第一条记录的日期可能是26/01/2015,时间是22:00。 我想要的是显示日期在未来的记录时间并显示该日期的第一次,因为数据库中有两条记录,日期为26/01/2015,另一条记录的时间为22:00另一个时间是22:30。 有人可以帮忙吗?

Rails:对于每个模型,始终包含created_at的毫秒数

如何修改我的Rails应用程序以始终包含我的模型的created_at字段的毫秒信息? 这个问题有关于如何为单个模型做到这一点的答案,但我想在全球范围内进行。 例如,当我检索所有的Item模型时(通过使用GET命中/items ),我得到以下JSON: [{“created_at”:”2011-08-07T23:42:15Z”,”updated_at”:”2011-08-07T23:42:15Z”,”id”:180,”user_id”:6,”content”:”test”}] 但请注意, created_at字段没有关于它创建的毫秒数的任何信息。 如何为我的所有模型添加该function?

生产和开发之间的奇怪时间不一致

出于某种原因,时间在开发(我的本地Mac)和生产(Heroku)中的表现不同。 看一下:(就在这之前我做了一个heroku db:pull ,所以数据库应该是相同的) 制作(Heroku) >> Annotation.last.id => 2028 >> Annotation.last.created_at => Sat, 12 Sep 2009 06:51:33 UTC +00:00 >> Time.zone => #<ActiveSupport::TimeZone:0x2b4972a4e2f0 @tzinfo=#, @utc_offset=0, @name=”UTC”> >> Time.now.zone => “PDT” 开发(我的Macbook Pro) >> Annotation.last.id => 2028 >> Annotation.last.created_at => Sat, 12 Sep 2009 09:51:33 UTC +00:00 >> Time.zone => #<ActiveSupport::TimeZone:0x23c92c0 @tzinfo=#, @utc_offset=0, @name=”UTC”> >> Time.now.zone […]

Rails更短“time_ago_in_words”

除了“time_ago_in_words”之外,轨道中是否有不同的时间计算? 我希望能够在几个小时的时间内使用’h’几个月……前。 3d,或4h,或5m 我的代码现在…… ago.

Rails和Postgresql:如何按小时分组查询?

如何在Postgres&Rails中按小时分组? 我已阅读了不少SO答案,但我收到了错误。 这在按日期分组时有效: Model.group(“date(updated_at)”).count 然后我尝试了以下一小时,但他们没有工作: Model.group(“hour(updated_at)”).count Model.group(“date_format(updated_at, ‘%H’)”).count Model.group(“extract(hour from updated_at)”).count 一旦我找到了需要更新的特定时间,我将如何获得那些小时的模型? 即: Model.where(“hour(updated_at) = ?”, 5)

如何获取数据库中的原始’created_at’值(不是转换为ActiveSupport :: TimeWithZone的对象)

想象一下,我有一个Post Model。 并且数据库中的一条记录将是: 23|title_here|content_here|2011-02-20 08:01:55.583222|2011-02-20 08:01:55.583222 最后两个字段( 2011-02-20 08:01:55.583222|2011-02-20 08:01:55.583222 )是created_at和updated_at字段。 然后, post = Post.find_by_id(23) 问题 :如何在数据库中获取created_at字符串:“ 2011-02-20 08:01:55.583222 ”? 我们知道,post.created_at将返回一个ActiveSupport::TimeWithZone对象,而不是原始字符串。 请帮忙 :)

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

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

如何在Rails中validation时间? 限制用户每天发布一次

我试图将用户的post限制为每天一次,我正在考虑检查Time.now – last_post_time是否<(一天中的第二个)但是那会强制每个帖子之间的24小时。 我想做的只是在这个月每天允许一个post,所以如果用户在3月28日发帖,他就不能再发帖到29日。 但如果他在3月28日晚上10点发布,他可以在3月29日上午12:01再次发布。 我该怎么办? 编辑: 这是我的posts_controller,我可以获得一些关于如何重构这个的帮助吗? def create @post = current_user.posts.build(params[:supportpost]) if @post.save flash[:success] = “Your post was created!” redirect_to root_path else @feed_items = [] render ‘pages/home’ end end 我正在尝试这样的事情,但肯定是错的: def create post = @user.posts.find(:first, :conditions => [“STRFTIME(‘%d’, created_at) = ?”, Date.today.day]) if post @post = current_user.posts.build(params[:supportpost]) if @post.save flash[:success] = “Your post […]

RoR 3将用户限制为每天2个post

我正在寻找限制我的用户每天发布超过两次,每周不超过5个post。 我有一个用户和post模型/控制器。 我一直在看这些问题,但它们并不是我想要的。 Rails 3.1限制用户创建的对象 如何在Rails中validation时间? 限制用户每天发布一次 错误@ 20:44 13/03/2012,来自KandadaBoggu的代码 NoMethodError in PostsController#create undefined method `beginnning_of_day’ for 2012-03-13 20:36:11 +0000:Time

何时应该在Rails中使用`DateTime.now.utc`与`Time.current.utc`?

在Rails中,我对何时使用DateTime.now.utc和Time.current之间的指导感到有些困惑。 在框架内似乎有不同的意见,哪个是最好的,特别是在不同的版本中。 看起来DateTime.now.utc生成一个UTC偏移为零的时间戳,而Time.current.utc生成一个时区为UTC的时间戳。 这似乎是一个微妙的区别,但在许多情况下(例如DST计算)它非常重要。 什么时候应该使用DateTime.now.utc ,什么时候应该使用Time.current.utc ? 有没有理由使用DateTime.now.utc而不是Time.current.utc ?