在PHP中,如何在从iPhone InApp收据中检索的购买日期中添加3个月?

时间:2010-02-21 12:49:31

标签: php iphone date in-app-purchase storekit

从我的PHP服务器验证了App Store的收据后,App Store通过

向我发送了JSON响应
"status" : 0 
"receipt" : ( .... )

其中一个收据项是“purchase_date”,其中包含以下字符串(示例)“2010-02-09 19:17:04 Etc / GMT”

我正在尝试建立订阅服务,并希望在此日期添加3个月,然后将该到期日期写入MySQL表。

PHP中是否有一个字符串到日期类型的函数可以让我实现3个月的添加?

我找到了这个例子,看起来它增加了1个月的日期:

$date = date("Y-m-d");// current date
$date = strtotime(date("Y-m-d", strtotime($date)) . " +1 month");

但我不确定如何将App Store传递的字符串转换为PHP识别日期。

2 个答案:

答案 0 :(得分:11)

你已经完成了,你刚刚添加了一步太多了。

$purchase_date = "2010-02-09 19:17:04";
$purchase_date_timestamp = strtotime($purchase_date);
$purchase_date_3months = strtotime("+3 months", $purchase_date_timestamp);

echo "Purchase date + 3months = ".date("Y-m-d h:i:s", $purchase_date_3months);

这取决于strtotime识别你的时间字符串 - 首先尝试一下。但通常情况下,strtotime可以识别任何格式正确的英美日期/时间字符串。如有疑问,请查看manual

答案 1 :(得分:0)

不要将时间视为标量值 - 它要复杂得多。我建议您将此逻辑推送到您的数据库中,前提是您使用一个存储数据?或者,最新版本的PHP有datetime object,可以使用。