يا ريت حدا يجاوبني ......
لدي تاريخين في php و أريد أن أقوم بعملية الطرح بحيث يظهر الناتج : عدد الأيام
كيف أستطيع أن أعمل ذلك ....
بالـ php و Javascript
يا ريت حدا يجاوبني ......
لدي تاريخين في php و أريد أن أقوم بعملية الطرح بحيث يظهر الناتج : عدد الأيام
كيف أستطيع أن أعمل ذلك ....
بالـ php و Javascript
الطريقه كتالي...
تقوم بتحويل التواريخ الى timestamps وهو حسب ويكي بيديا
A timestamp is a sequence of characters, denoting the date and/or time at which a certain event occurred. This data is usually presented in a consistent format, allowing for easy comparison of two different records and tracking progress over time; the practice of recording timestamps in a consistent manner along with the actual data is called timestamping.
وهو بمثابة نقطه مرجعيه لنا يمكن الاستزاده عنه من هنا http://en.wikipedia.org/wiki/Timestamp
اي نقوم بتحويل التاريخيين الى ما يقابلهم في timestamp وبعد ذلك يصبح لدينا رقمين عشريين صحيحين يمكن طرحهم الان الرقم الناتج نعيد تحويله الى ما يقابله في تاريخ ميلادي
<? $date1="11-11-2008"; $date2="11-11-2009"; $differInTimeStamp =abs( strtotime($date1) - strtotime($date2)); ?>
تم تعديل هذه المشاركة بواسطة ahmad123 في 7 يناير 2009 في 21:29
أشكرك كثيرا على الرد
لكن هذا الكود لم يعطي نتائج صحيحة فلم يعطي الفرق بين التاريخين بشكل صحيح.......
( فهو يعطي نتائج صحيحة اذا كان بنفس الشهر و نفس السنة)
فانا لدي تاريخ مدخل في قاعدة البيانات بنوع date فيخزنه هكذا Y/m/d
و أريد مقارنته مع تاريخ اليوم و حساب الفرق بينهما بالأيام ....
اذا كان الفرق أكبر من 30 يوم يعطي تنبيه بذلك ( رسالة ما..... )
التاريخ المدخل قد يكون في سنة 2005
و تاريخ اليوم في سنة 2009
<?php $date1="4/15/2005"; $date2="3/1/2009"; $differInTimeStamp =abs( strtotime($date1) - strtotime($date2)); $day = round( ($differInTimeStamp) / (60*60*24) ); echo $day; ?>
I Say Nothing
mana80 كتب:<?php $date1="4/15/2005"; $date2="3/1/2009"; $differInTimeStamp =abs( strtotime($date1) - strtotime($date2)); $day = round( ($differInTimeStamp) / (60*60*24) ); echo $day; ?>
تماما...
ما بعرف ماذا أقول لك.......اعذرني
و لكن عندما جربت الفرق بين 13/1/2009 و 13/3/2009
فأعطى الناتج 2
الدالة strtoime تقبل تاريخ بالصيغة
yyyy-mm-dd أو mm-dd-yyyy
وفي حالتك الأخيرة فالتنسيق لديك dd-mm-yyyy
فإذا كنت تريد نفس التنسيق السابق فاستخدم الدالة explode لتحديد اليوم والشهر والسنة .
تم تعديل هذه المشاركة بواسطة mana80 في 8 يناير 2009 في 13:50
I Say Nothing
بالـ Mysql
النوع date
يقبل التاريخ yyyy-mm-dd
أي السنة أولا ثم الشهر ثم التاريخ
و انا لدي هذه الصيغة ألا تقبلها دالة strtotime
كيف استخدم الدالة explode
ask google ;)
سألت google
وعملت هذا
function mk_time($date2){
$explode=explode("-",$date2);
$y=$explode[0];
$m=$explode[1];
$d=$explode[2];
$mktime=mktime(0,0,0,$m,$d,$y);
return $mktime;
}
$datnow=mk_time($date_now);
$enterdate=mk_time($enter_date);
$period=abs($enterdate-$datnow);
$days=$period/86400;بس ما عم يعطيني نتائج صحيحة
شو المشكلة ؟؟؟؟
عم استخدم النوع date
في القاعدة
والتاريخ يدخل للقاعدة yyyy-mm-dd
تم تعديل هذه المشاركة بواسطة LJD في 16 يناير 2009 في 03:21
$explode=explode("-",$date2);لاحظ المحدد delimiter عندك "-" و حسب ماتقول تاريخ لديك يفصله /
تم تعديل هذه المشاركة بواسطة ahmad123 في 16 يناير 2009 في 11:53
عم استخدم النوع date
في القاعدة
والتاريخ يدخل للقاعدة yyyy-mm-dd
هل جربت الكود؟؟؟؟ و أعطى نتائج صحيحة؟؟؟
راجع هذا الموضوع :
<?php
//date in the past.
$date1 = "2008-04-11";
//current date.
$date2 = date("Y-m-d", time());
//calculate the difference in seconds.
$difference = abs(strtotime($date2) - strtotime($date1));
//calculate the number of days
$days = round(((($difference/60)/60)/24), 0);
?>thanks very much I will try it.....
راقب أفكارك ... لأنها تصبح كلمات
راقب كلماتك ... لأنها تصبح أفعالاً
راقب أفعالك ... لأنها تصبح عادات
راقب عاداتك ... لأنها تصبح شخصيتك
راقب شخصيتك ... لأنها تصبح مصيرك
thanks for all.......
طمنا اشتغل معك أي كود ولا لأ؟
شكرا للجميع
اشتغل الكود تبعك اخ خالد
thank u....
شكراً على الرد