اخواني
لدي مشكلة ارجو مساعدتكم في حلها
عند اضافة قطعة معينة في قاعدة البيانات يتم تخزين تاريخ الادخال now()
اريد ان تعطى كل قطعة فترة 30 يوم للعرض بحيث يتم العد تنازاليا
مثلا باقي 25 يوم
وباقي 13 يوم
كيف يمكن حساب ذلك؟
اخواني
لدي مشكلة ارجو مساعدتكم في حلها
عند اضافة قطعة معينة في قاعدة البيانات يتم تخزين تاريخ الادخال now()
اريد ان تعطى كل قطعة فترة 30 يوم للعرض بحيث يتم العد تنازاليا
مثلا باقي 25 يوم
وباقي 13 يوم
كيف يمكن حساب ذلك؟
هذه الدالةتصلح للغرض
كود PHP:
function GetTotalDay($date)
{
list($day, $month, $year) = explode('-', $date);
// Borrowed from php.net!
$date1 = mktime(0, 0, 0, $month, $day, $year);
$date2 = mktime(0, 0, 0, date('m'), date('d'), date('Y'));
$total_days = round((($date1 - $date2)/86400), 0);
// Borrowed from php.net!
return $total_days;
}
$days = GetTotalDay('20-5-2009');
echo 'The last days: '.$days;
مهتم
ممكن شرح لهذه الدله من فضلك
__________________
FaceBook Application Developer
تعلم برمجة سكريبت جلب المحتوى خطوة بخطوة
مشروعى داخل معرض الاتصالات
لمراسلتي إضغط هنا
سبحان الله وبحمده سبحان الله العظيم
الموضوع يعتمد على صيغة حفظ التاريخ في قاعدة البيانات لديك
في رأيي أفضل طريقة لحفظ التواريخ بقاعدة البيانات هي unix_timestamp
يسهل جدا تنفيذ العمليات الحسابية عليها
مثلا، اذا أردت ايجاد عدد الأيام المتبقية حتى تاريخ معين
كود PHP:
$date1 = mktime(0, 0, 0, 10, 1, 2009);
$date2 = time();
$d = $date1 - $date2;
$days = $d/60/60/24;
echo ceil($days);
__________________
مدونتي
استخدم تلك الداله بعد عمل بعض التعديلات عليها
وتخرج الفرق بين تاريخين بالعام والشهر واليوم....الثانيه
صيغة الوقت المدخله تكون unix time عن طريق الداله time() مثلا
كود PHP:
timediffer($string)
{
$today=time();
$pubdate = date('Y-m-d/H:i:s',$string);
$pubdate = explode('/',$pubdate);
$pubdate = $pubdate['0'].'T'.$pubdate['1'].'Z';
//$pubdate="2009-08-17T00:00:00Z";
$year = substr($pubdate, 0, -16);
$month = substr($pubdate, 5, -13);
$day = substr($pubdate, 8, -10 );
$hour = substr($pubdate, 11, -7 );
$minute = substr($pubdate, 14 , -4);
$second = substr($pubdate, 17, -1);
$newpubdate = mktime($hour, $minute, $second, $month, $day, $year);
$difference = $today - $newpubdate;
$count = 0;
echo 'منذ ';
if(floor($difference / 31104000) > 0){
echo floor($difference / 31104000);
$difference -= 31104000 * floor($difference / 31104000);
echo 'عام ';
$count++;
}
if(floor($difference / 2592000) > 0){
echo floor($difference / 2592000);
$difference -= 2592000 * floor($difference / 2592000);
echo 'شهر ';
$count++;
}
if(floor($difference / 84600) > 0 && $count<2){
echo floor($difference / 84600);
$difference -= 84600 * floor($difference / 84600);
echo 'يوم ';
$count++;
}
if(floor($difference / 3600) > 0 && $count<2){
echo floor($difference / 3600);
$difference -= 3600 * floor($difference / 3600);
echo 'ساعه ';
$count++;
}
if(floor($difference / 60) > 0 && $count<2){
echo floor($difference / 60);
$difference -= 60 * floor($difference / 60);
echo 'دقيقه ';
$count++;
}
if($count<2){
return $difference.'ثانيه';
}
}
__________________
Contact Me