我正在查看 PayPal IPN docs
,它说datetime
他们的字符串的戳记格式为:
HH:MM:SS DD Mmm YY, YYYY PST
所以年份被指定了两次?
一次是两位数,另一次是四位数?
这看起来很奇怪。
我正在查看 PayPal IPN docs
,它说datetime
他们的字符串的戳记格式为:
HH:MM:SS DD Mmm YY, YYYY PST
所以年份被指定了两次?
一次是两位数,另一次是四位数?
这看起来很奇怪。
这似乎是文档中的一个错误。实际格式应为“HH:MM:SS Mmm DD, YYYY PST”(例如“08:30:06 Apr 19, 2017 PDT”)
实际上在 PHP 中你需要使用 date("Ymd\TH:i:s\Z") 。这将导致看起来像 2012-04-30T00:05:47Z 的东西——我没有注意到 urlencoded 和 non 之间的区别。
你们在哪里找到这些信息?这些信息在他们的文档中是难以捉摸的,我花了一两个小时寻找和尝试东西。我看到这种格式的唯一地方是在 TIMESTAMP 字段中。CreateRecurringPaymentsProfile 的 PayPal NVP API 的 PROFILESTARTDATE 和“订阅开始日期应该是有效的”错误很难处理。
对于 php,语法是date("G:i:s M m, Y T");
根据他们的文档,这是正确的格式 - 2010-03-27T12:34:49Z 所以它是 - YYYY-MM-DDTHH:MM:SSZ (我不知道中间的 T 和 Z 是什么,但它是恒定的对于所有日期)我已经用 Java 创建了 PayPal NVP 库,所以如果你想检查它是如何工作的,或者使用它,我们非常欢迎你。它在 sourceforge - payapal-nvp.sourceforge.net
完整的日期加上小时、分钟、秒和秒的小数部分 YYYY-MM-DDThh:mm:ss.sTZD(例如 1997-07-16T19:20:30.45+01:00) 其中 TZD = 时区指示符(Z或 +hh:mm 或 -hh:mm)
示例 1994-11-05T08:15:30-05:00 对应于美国东部标准时间 1994 年 11 月 5 日上午 8:15:30。
1994-11-05T13:15:30Z 对应于同一时刻。
实际上,我认为正确的格式是:yyyy-MM-ddTHH:MM:ssZ
案子很重要。