如何将subscr_date和subscr_effective转换为mysql日期

时间:2013-02-12 19:25:48

标签: mysql datetime paypal paypal-ipn paypal-subscriptions

自动回答我自己的问题,因为我们的目标是帮助你们使用IPN,这足以让你自己挽救这一步......

提醒:它是关于转换Paypal IPN的以下字段:

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

到mysql DATE值。

希望它有所帮助! 干杯, S上。

3 个答案:

答案 0 :(得分:1)

Java用户只需使用SimpleDateFormat("HH:mm:ss MMM dd, yyyy z")

请注意,IPN指南(“HH:MM:SS DD Mmm YY,YYYY PST”)中此格式的文档不正确,您可以通过双年字段来判断。

另请注意,正如我刚刚建立的那样,沙箱测试IPN工具发送的内容还是第三种格式。

答案 1 :(得分: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 ;

答案 2 :(得分:0)

正如https://stackoverflow.com/users/670078/panagiotis所指出的那样,如果您使用的是PHP,最简单的答案就是使用strtotime转换。

这是更完整的复制/粘贴PHP解决方案:

$subscr_date = date('Y-m-d H:i:s', strtotime($_POST['subscr_date']));
$subscr_effective = date('Y-m-d H:i:s', strtotime($_POST['subscr_effective']));

使用某个函数可能对某些人更好(尽管它是更多的代码,但我经常被指控做事“简单”而不是“最佳实践”。...)

function changePaypalDateToMySQL($paypalDate){
    return date('Y-m-d H:i:s', strtotime($paypalDate));
}

$subscr_date = changePaypalDateToMySQL($_POST['subscr_date']);
$subscr_effective = changePaypalDateToMySQL($_POST['subscr_effective']);

另外要注意的是,贝宝​​(PayPal)支持网络钩子https://developer.paypal.com/docs/integration/direct/webhooks/rest-webhooks/,通常比IPN https://www.paypal-engineering.com/2014/10/07/webhooks-for-rest-apis-launched/更好,因此建议使用。