في PHP ، كيف يمكنني إضافة 3 أشهر إلى تاريخ الشراء الذي تم استرداده من إيصال iPhone INAPP؟

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

سؤال

بعد أن قمت بالتحقق من صحة الإيصال مقابل متجر التطبيقات من خادم PHP الخاص بي ، يقوم متجر التطبيقات بإرسال استجابة JSON مع

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

أحد عناصر الإيصال هو "purchain_date" الذي يحتوي على السلسلة التالية (مثال) "2010-02-09 19:17:04 إلخ/gmt"

أحاول إنشاء خدمة اشتراك وأرغب في إضافة 3 أشهر إلى هذا التاريخ ثم أكتب تاريخ انتهاء الصلاحية في جدول MySQL.

هل هناك وظيفة نوع إلى تاريخ في PHP يمكن أن تسمح لي بتحقيق إضافة 3 أشهر؟

لقد وجدت هذا المثال الذي يبدو أنه يضيف شهر واحد إلى تاريخ:

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

لكنني لست متأكدًا من كيفية تحويل السلسلة التي تم تمريرها بواسطة متجر التطبيقات إلى تاريخ معترف به 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("Y-m-d h:i:s", $purchase_date_3months);

هذا يعتمد على strtotime إعادة توصيل سلسلة الوقت الخاصة بك - جربها أولاً. ولكن عادةً ، يمكن لـ StrTotime التعرف على أي سلسلة تاريخ/الوقت المنسقة المنسقة بشكل صحيح. إذا كنت في شك ، تحقق كتيب.

نصائح أخرى

لا تعامل الوقت كقيمة قياسية - إنها أكثر تعقيدًا من ذلك. أود أن أقترح عليك دفع هذا المنطق إلى قاعدة البيانات الخاصة بك ، شريطة أن تستخدم واحدة لتخزين البيانات؟ بدلاً من ذلك ، فإن الإصدارات الحديثة من PHP لديها ملف كائن DateTime, والتي يمكن استخدامها.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top