In PHP, come faccio ad aggiungere 3 mesi alla data di acquisto recuperato dal ricevimento iPhone InApp?

StackOverflow https://stackoverflow.com/questions/2305902

Domanda

Dopo che ho convalidato la ricevuta contro l'App Store dal mio server PHP, l'App Store mi restituisce una risposta JSON con

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

Uno degli elementi ricevuta è "PURCHASE_DATE", che contiene la seguente stringa (esempio) "2010-02-09 19:17:04 Etc / GMT"

Sto cercando di creare un servizio di abbonamento e vorrei aggiungere 3 mesi a questa data e poi scrivere che la data di scadenza in una tabella di MySQL.

C'è una funzione di tipo stringa-to-date in PHP che può permettermi di raggiungere l'aggiunta di 3 mesi?

Ho trovato questo esempio che sembra che aggiunge 1 mese a una data:

$date = date("Y-m-d");// current date
$date = strtotime(date("Y-m-d", strtotime($date)) . " +1 month");

Ma io non sono sicuro di come posso trasformare la stringa passata da App Store in una data PHP riconosciuta.

È stato utile?

Soluzione

Hai già fatto, è stato appena aggiunto un passo di troppo.

$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);

questo dipende strtotime recoginzing stringa di tempo - provarlo prima. Ma di solito, strtotime in grado di riconoscere qualsiasi stringa data / ora anglo-americana formattato correttamente. In caso di dubbio, controllare la manuale .

Altri suggerimenti

Non trattare il tempo come un valore scalare - E 'molto più complesso di quello. Vorrei suggerire che si spinge questa logica nel database, a condizione che si utilizza uno per la memorizzazione di dati? In alternativa, le versioni recenti di PHP comprende una oggetto datetime , che può essere usato.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top