В PHP, как мне добавить 3 месяца к дате покупки, полученной из квитанции iPhone InApp? - PullRequest
2 голосов
/ 21 февраля 2010

После того, как я проверил квитанцию ​​в App Store с моего PHP-сервера, App Store отправляет мне ответ JSON с

"status" : 0 
"receipt" : ( .... )

Одним из элементов квитанции является «purchase_date», в котором содержится следующая строка (пример)

Я пытаюсь создать службу подписки и хотел бы добавить 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.

Ответы [ 2 ]

11 голосов
/ 21 февраля 2010

Вы уже сделали это, вы просто добавили на один шаг слишком много.

$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 может распознать любую правильно отформатированную англо-американскую строку даты / времени. В случае сомнений обратитесь к руководству .

0 голосов
/ 21 февраля 2010

Не рассматривайте время как скалярное значение - оно гораздо сложнее, чем это. Я бы посоветовал вам вставить эту логику в вашу базу данных, если вы используете такую ​​для хранения данных? Кроме того, в последних версиях PHP есть объект datetime , который можно использовать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...