首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >慢性使用会损害你的时间感吗?

慢性使用会损害你的时间感吗?
EN

Stack Overflow用户
提问于 2010-05-13 02:47:56
回答 1查看 1.8K关注 0票数 28

哈哈..

我使用Chronic来解析用户在Calendar中添加的时间。当代码工作并实现正确的时间时,最终结果是,如果用户添加了一个时间,那么它就没有日期,并且因为它没有日期,所以它将不会显示在结果中。有什么想法吗?

代码语言:javascript
复制
def set_dates
  unless self.natural_date.blank? || Chronic.parse(self.natural_date).blank?
    # check if we are dealing with a date or a date + time
    if time_provided?(self.natural_date)
      self.date = nil
      self.time = Chronic.parse(self.natural_date)
    else
      self.date = Chronic.parse(self.natural_date).to_date
      self.time = nil
    end
  end

  unless self.natural_end_date.blank? || Chronic.parse(self.natural_end_date).blank?
    # check if we are dealing with a date or a date + time
    if time_provided?(self.natural_end_date)
      self.end_date = nil
      self.end_time = Chronic.parse(self.natural_end_date)
    else
      self.end_date = Chronic.parse(self.natural_end_date).to_date
      self.end_time = nil
    end
  end
end

编辑:

这是time_provided吗?方法:

代码语言:javascript
复制
def time_provided?(natural_date_string)
  date_span = Chronic.parse(natural_date_string, :guess => false)
  (date_span.last - date_span.first).to_i == 1
end
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-05-13 15:44:06

首先,我真的不确定你问的是什么,因为看起来代码故意做了你所描述的……当提供时间时,日期字段被分配nil。我不认为这是慢性的,因为这就是你的代码的工作方式。

不知道你的设计(为什么有单独的日期和时间字段),字段的类型等,我建议从下面这样的小杂乱无章开始:

代码语言:javascript
复制
if time_provided?(self.natural_date)
  self.time = Chronic.parse(self.natural_date)
  self.date = self.time.to_date

或者:

代码语言:javascript
复制
self.end_date = Chronic.parse(self.natural_date).to_date
if time_provided?(self.natural_date)
  self.time = Chronic.parse(self.natural_date)
end

或者,问题可能出在您提供的代码之外:在导致“因为没有日期,所以不会在结果中显示”行为的部分中?也许你应该让条件更灵活些?

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2821813

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档