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