في PHP ، كيف يمكنني إضافة 3 أشهر إلى تاريخ الشراء الذي تم استرداده من إيصال iPhone INAPP؟
-
21-09-2019 - |
سؤال
بعد أن قمت بالتحقق من صحة الإيصال مقابل متجر التطبيقات من خادم 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, والتي يمكن استخدامها.