2

在我从我的 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 识别的日期。

4

2 回答 2

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 可以识别任何格式正确的英美日期/时间字符串。如有疑问,请查看手册

于 2010-02-21T12:53:47.930 回答
0

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

于 2010-02-21T18:25:39.670 回答