سؤال

ولست بحاجة لجعل طابع زمني لوضع في الخلية. يرسل المستخدم برقم (أسابيع) أحتاج أن أضيف أن العديد من أسابيع إلى تاريخ اليوم. ما أحاول القيام به هو حساب موعد نهاية إعلان أن يرسل المستخدم.

وأي اقتراحات بشأن كيفية القيام بذلك؟ شكرا!

هل كانت مفيدة؟

المحلول

ويمكنك استخدام strtotime لإضافة الوقت إلى الآن - أنه يأخذ الحجة الثانية التي هي الوقت الحالي إذا تم تمريره لا شيء. يمكنك ثم تمرير ذلك الوقت بإنشائه إلى date وظيفة لخلق الطابع الزمني الخاص بك:

$timestamp = date('Y-m-d H:i:s', strtotime('+10 weeks'));

نصائح أخرى

وأعتقد DATE_ADD (CURDATE ()، INTERVAL 2 WEEK) أن أضيف 2 أسابيع إلى التاريخ الحالي، على سبيل المثال

إذا كنت تريد الإعلان لتنتهي في وقت معين من اليوم يمكنك استخدام mktime:

    $ يوم = التاريخ ( "د") + ($ أسابيع * 7)؛
    mktime ($ ساعة، $ دقيقة، $ الثانية، $ في الشهر، $ اليوم، $ السنة)؛

وفقط لإضافة، وقد يقول البعض أن تخزين الوقت UNIX كحقل كثافة العمليات سهل عمره في قاعدة البيانات هو الحل أكثر مرونة والمحمولة. وعلاوة على ذلك، إدراج والتحديثات يحدث أسرع لأنها تنطوي فقط تخزين الأعداد الصحيحة بسيطة. انها حقا يتوقف على مقدار التلاعب التاريخ الذي <م> الحاجة القيام به في مستوى قاعدة البيانات. أنا أميل للذهاب لقابلية وتفعل كل ما عندي من حسابات التاريخ في PHP. لتخزين الطابع الزمني الحالي، وأود أن إدراج فقط في عمود صحيح إخراج:

strtotime('now');

أو

time();

وكلاهما يعود (يونيكس) الطابع الزمني الحالي. تاريخ المقارنة بعد ذلك يمكن أن يتم ذلك عن طريق جلب الطوابع الزمنية من قاعدة البيانات وتنفيذ عملية حسابية بسيطة، كما تافهة على النحو التالي:

if($tsFromDb > strtotime('+28 days')) {
   echo 'it is the future, zombies!';
}

وانها حقا يتوقف على ما كنت تستخدم مواعيد.

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