2013-02-12 2 views
0

Auto-отвечая на мой собственный вопрос, поскольку цель состоит в том, чтобы помочь вам, ребята с СПИ, что достаточно хардкорный, чтобы сохранить себе этот шаг ...как конвертировать subscr_date и subscr_effective на сегодняшний день тузд

Напоминание: это о преобразовании следующие поля Paypal IPN:

  • $_POST['subscr_date']
  • $_POST['subscr_effective']

к MySQL DATE значение.

Надеюсь, это поможет! Приветствия, С.

ответ

0

Так что, если вы когда-нибудь задавались вопросом, как преобразовать эти даты в MySQL, вот код:

DELIMITER $$ 
DROP FUNCTION IF EXISTS ppdate_to_mysqldate$$ 

CREATE FUNCTION ppdate_to_mysqldate(I_PP_EFFECTIVE_DATE VARCHAR(32)) RETURNS DATE DETERMINISTIC 
BEGIN 
DECLARE dteStart DATE; 

    /* 
     I_PP_EFFECTIVE_DATE:  
     . from doc: 
      Date when the subscription modification will be effective. 
      Time/Date stamp generated by PayPal, in the following format: HH:MM:SS DD Mmm YY, YYYY PST 
     . from real example: 
      03:00:00 Mar 11, 2013 PDT 
      06:56:24 Feb 11, 2013 PST 
    */ 

    IF INSTR(I_PP_EFFECTIVE_DATE, 'PDT') > 0 THEN 
     SELECT STR_TO_DATE(I_PP_EFFECTIVE_DATE, '%H:%i:%s %b %e, %Y PDT') INTO dteStart FROM DUAL; 
    ELSE 
     SELECT STR_TO_DATE(I_PP_EFFECTIVE_DATE, '%H:%i:%s %b %e, %Y PST') INTO dteStart FROM DUAL; 
    END IF; 

    RETURN dteStart; 
END$$ 

DELIMITER ; 
+1

'echo date ('Y-m-d H: i: s', strtotime ('03: 00: 00 11 марта 2013 г. PDT '));' может быть? – Panagiotis

+0

Я не знаю, работает ли это, но это php, а не mysql :-) – Sebas

+0

Да, но какой sdk вы используете для ipn? – Panagiotis

1

Java пользователи просто нужно использовать SimpleDateFormat("HH:mm:ss MMM dd, yyyy z").

Обратите внимание, что документация этого формата в руководстве IPN («HH: MM: SS DD Mmm YY, YYYY PST») неверна, как вы можете узнать по двухлетним полям.

Отметьте также, как я только что установил сегодня, что песочница Test IPN отправляет еще третий формат.

Смежные вопросы