В PHP, как я могу добавить 3 месяца к дате покупки, полученной из квитанции iPhone InApp?

После того, как я подтвердил получение с App Store с моего PHP-сервера, App Store отправил мне ответ JSON с

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

Одним из элементов получения является «purchase_date», который содержит следующую строку (пример) «2010-02-09 19:17:04 Etc / GMT»

Я пытаюсь установить услугу подписки и хотел бы добавить 3 месяца к этой дате, а затем записать эту дату истечения срока действия в таблицу MySQL.

Есть ли в PHP функция типа «строка-дата», которая позволяет мне добавить 3 месяца?

Я нашел этот пример, который выглядит как добавляет 1 месяц к дате:

 $date = date("Ymd");// current date $date = strtotime(date("Ymd", strtotime($date)) . " +1 month"); 

Но я не уверен, как я могу превратить строку, переданную в App Store, в дату, распознанную PHP.

Related of "В PHP, как я могу добавить 3 месяца к дате покупки, полученной из квитанции iPhone InApp?"

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

 $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("Ymd h:i:s", $purchase_date_3months); 

это зависит от strtotime recoginzing вашей строки времени – попробуйте сначала. Но обычно strtotime может распознавать любую правильно отформатированную англо-американскую строку даты / времени. Если есть сомнения, проверьте руководство .

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