gpt4 book ai didi

ruby-on-rails - 下一个付款日期另存为日期时间栏

转载 作者:太空宇宙 更新时间:2023-11-03 15:53:11 26 4
gpt4 key购买 nike

我正在尝试设置一种方法来创建比较这些列的每日计划:

我正在存储 paypal IPN next_payment_date,它的格式与默认的 Rails 格式不同

示例

Paypal IPN“next_payment_date”=>“太平洋夏令时间 2015 年 10 月 6 日 03:00:00”

rails created_at: "2015-10-05 14:24:17"

这些是不同的格式,我不太确定 Rails 是否可以比较它们。

例如

我尝试像这样将 next_payment_date 存储为 datetime

subscription = Subscription.find_by(paypal_recurring_profile_token: params[:recurring_payment_id])
if params[:next_payment_date]
subscription.update_attributes(paid_until: params[:next_payment_date])
end

这是 Paypal 日期:

“next_payment_date”=>“太平洋夏令时间 2015 年 10 月 6 日 03:00:00”

这就是 rails 存储的内容

paid_until: "2015-10-05 03:00:06"

看起来 rails 确实知道一点,但它不会转换月份和日期,只是时间。

存储这些参数的正确方法是什么?

编辑

架构:

create_table "payment_notifications", force: :cascade do |t|
t.text "params"
t.integer "user_role_id"
t.string "status"
t.string "transaction_id"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.integer "user_id"
t.string "txn_type"
t.string "recurring_payment_profile_id"
end

create_table "subscriptions", force: :cascade do |t|
t.integer "user_role_id"
t.integer "user_id"
t.string "paypal_customer_token"
t.string "paypal_recurring_profile_token"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
t.datetime "paid_until"
t.boolean "canceled", default: false
end

编辑2

尝试转换字符串时间,但似乎不正常:

irb(main):006:0> PaymentNotification.last.params[:next_payment_date]
PaymentNotification Load (1.9ms) SELECT "payment_notifications".* FROM "payment_notifications" ORDER BY "payment_notifications"."id" DESC LIMIT 1
=> "03:00:00 Oct 07, 2015 PDT"
irb(main):007:0> PaymentNotification.last.params[:next_payment_date].to_time
PaymentNotification Load (4.7ms) SELECT "payment_notifications".* FROM "payment_notifications" ORDER BY "payment_notifications"."id" DESC LIMIT 1
=> 2015-10-06 03:00:07 +0000

最佳答案

有几种不同的 ruby​​/rails 类可以处理日期和时间。检查您正在使用的不同对象的类。示例(在 Rails 控制台中):

2.2.2 :011 > Date.current.class
=> Date
2.2.2 :012 > Time.now.class
=> Time
2.2.2 :013 > DateTime.now.class
=> DateTime
2.2.2 :014 > Time.zone.now.class
=> ActiveSupport::TimeWithZone

关于处理这些类的不错的引用:http://stevenyue.com/2013/03/23/date-time-datetime-in-ruby-and-rails/

关于ruby-on-rails - 下一个付款日期另存为日期时间栏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32951271/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com