在 PHP 中,如何在从 iPhone InApp 收据中检索到的购买日期加上 3 个月?
Posted
技术标签:
【中文标题】在 PHP 中,如何在从 iPhone InApp 收据中检索到的购买日期加上 3 个月?【英文标题】:In PHP, how do I add 3 months to the purchase date retrieved from the iPhone InApp receipt? 【发布时间】:2010-02-21 12:49:31 【问题描述】:在我从我的 php 服务器向 App Store 验证收据后,App Store 会向我发回 JSON 响应
"status" : 0
"receipt" : ( .... )
其中一个收据项目是“purchase_date”,其中包含以下字符串(示例)“2010-02-09 19:17:04 Etc/GMT”
我正在尝试建立订阅服务,并希望在此日期上增加 3 个月,然后将该到期日期写入 mysql 表中。
PHP中是否有一个string-to-date类型的函数可以让我实现3个月的加法?
我发现这个例子看起来像是给日期增加了 1 个月:
$date = date("Y-m-d");// current date
$date = strtotime(date("Y-m-d", strtotime($date)) . " +1 month");
但我不确定如何将 App Store 传递的字符串转换为 PHP 识别的日期。
【问题讨论】:
【参考方案1】:你已经做到了,只是你加了太多步骤。
$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。
【讨论】:
【参考方案2】:不要将时间视为标量值 - 它比这要复杂得多。我建议您将此逻辑推送到您的数据库中,前提是您使用一个用于存储数据的逻辑?或者,最新版本的 PHP 有一个datetime object,可以使用。
【讨论】:
以上是关于在 PHP 中,如何在从 iPhone InApp 收据中检索到的购买日期加上 3 个月?的主要内容,如果未能解决你的问题,请参考以下文章
我们可以将实时应用程序转换为 iphone 中的 InApp 应用程序吗? [关闭]
php - Laravel:如何在从下拉列表中选择更改后加载 Ajax 数据?
在ios设备上集成phonegap inapp购买插件时出错