【问题标题】:Datetime format date received is in different format in rails收到的日期时间格式日期在 Rails 中采用不同的格式
【发布时间】:2013-02-02 13:22:32
【问题描述】:

我有一个表,其中包含一个名为 DOB 的列,其数据类型是 DATETIME。问题是 created_at 也是一个日期时间,但它通过 JSON 接收的数据是这种格式

"created_at":"2013-02-02 11:57:42",
"dob":"2013-02-18T18:30:00Z"

两个日期的格式不同,但它们都具有日期时间数据类型。 现在我正在使用Datejs

格式化不解析DOB格式的日期只能解析created_at格式。

我现在该怎么办?

这就是我正在做的通过 datejs 解析的工作

        if(value.dob != null){
            alert(value.dob);
            d1 = Date.parse(value.dob);
            alert(d1);
            dob = d1.toString("M-d-yyyy");

        }

我在控制台上收到此错误:

: d1 is null
[Break On This Error]   

dob = d1.toString("M-d-yyyy");

我的控制器:

  def get_oi_report_contact
       @contactlist = CaseOiReportMap.select("rc.*").where("case_oi_report_maps.oireport_identifier = ?",identifier)
       .joins("LEFT JOIN case_oi_report_contacts_maps cm on cm.case_oi_report_map_id = case_oi_report_maps.id")
       .joins("LEFT JOIN oi_report_contacts rc on rc.id = cm.oi_report_contact_id ")
       respond_to do |format|
          format.json { render :json => @contactlist.to_json }
       end

  end 

我也用过猴子补丁:

class ActiveSupport::TimeWithZone
    def as_json(options = {})
        strftime('%Y-%m-%d %H:%M:%S')
    end
end

但它似乎不起作用。

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-3 datetime datejs


    【解决方案1】:

    【讨论】:

    • 它必须通过 Javascript,因为我使用 ajax 和 JSON 来接收数据。
    • 我想我误解了你的要求。您是否尝试使用 datejs 解析“dob”:“2013-02-18T18:30:00Z”?如果是这种情况,你如何设置 dob?
    • 对不起,我没有得到你..你的意思是我如何插入?还是 dob 列数据类型?一件事 DOB 数据类型是 DATETIME,它以这种格式存储 2013-02-02 19:09:14
    • 我明白了,但你从哪里得到“dob”:“2013-02-18T18:30:00Z”?这是您尝试使用 datejs 解析的来自服务器的 json 响应吗?如果是,请在发送此 json 的控制器中显示代码。
    • 你可以试试这个页面中描述的选项吗? apidock.com/rails/DateTime/to_json
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-12-10
    • 1970-01-01
    • 1970-01-01
    • 2014-02-03
    • 1970-01-01
    • 2014-08-16
    • 1970-01-01
    相关资源
    最近更新 更多