首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >转换日期字符串

转换日期字符串
EN

Stack Overflow用户
提问于 2009-10-13 12:37:41
回答 6查看 5.8K关注 0票数 2

我有一个日期字符串:"2009-10-12“。我想写一个方法,它将this作为参数,并返回一周中三个字母的日期(在本例中为'mon')。我写了以下内容:

代码语言:javascript
运行
复制
def date_to_day_of_week(date)
  d = Date.parse(date).strftime("%a").downcase!
  return d
end

当我从脚本/控制台调用它时,它按预期工作。然而,当我在我的应用程序中调用它时,我得到了各种不同的错误,这取决于我所做的事情。主要的问题是,要么date_to_day_of_week是一个未定义的方法,要么如果我移动方法的内容(即内联day = Date.parse(date).strftime("%a").downcase!,那么我就会得到private method gsub! called for Mon, 12 Oct 2009:Date。我只是觉得我刚开始理解Ruby和Rails,然后我又回到了起点!

有人能帮上忙吗?

盖夫

EN

回答 6

Stack Overflow用户

发布于 2009-12-30 23:20:55

这段代码在哪里?例如,如果它在一个由控制器调用的模型中,你可能想要使用:

代码语言:javascript
运行
复制
def self.date_to_day_of_week(date)
  d = Date.parse(date).strftime("%a").downcase!
  return d
end

并使用以下命令在控制器中调用它:

代码语言:javascript
运行
复制
def index
  # ...
  @date = Model.date_to_day_of_week("2009-12-30")
end
票数 2
EN

Stack Overflow用户

发布于 2009-10-13 20:45:12

看看ActiveSupport::CoreExtensions::Date::Conversions.您可以定义自己的DATE_FORMATS并使用"to_formatted_s“将其输出。我相信你想要的缩写月份是"%b“

票数 1
EN

Stack Overflow用户

发布于 2009-10-13 13:51:12

如果你得到一个“未定义的方法”错误,那就意味着这个方法在被调用的时候是不可访问的。

如果您试图从帮助器调用该方法,则需要将该方法放在您的ApplicationHelper中,而不是ApplicationController中。如果您还想从您的控制器访问它,请在您的ApplicationController中输入以下内容:

代码语言:javascript
运行
复制
helper_method :date_to_day_of_week
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1559946

复制
相关文章

相似问题

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