تشخيص اينكه آيا تاريخ ديروز هست يا امروز

sunrise

Member
سلام دوستان

من ميخواستم برنامه اي بنويسم كه وقتي تاريخ رو ميخواد بخونه و نمايش بده در صورتي كه تاريخ مربوط به امروز باشه فقط بنويسه امروز و اگه مربوط به ديروز باشه بنويس ديروز. البته من اين كار رو كردم و تشخيص اينكه آيا تاريخ مربوط به امروز هست مشكلي ندارم ولي تويه تشخيص اينكه تاريخ مربوط به ديروز هست در هنگامي كه وارد ماه جديد مي شويم مشكل دارم يعني اينكه اگه تويه همون ماه باشه مشكلي نداره و مي نويسه ديروز ولي اگه ماه جديد بشه تاريخ ديروز رو بعنوان ديروز نميشناسه ، البته اين طبيعي هم هست چون من از يه روش خيلي ابتدايي براي اين كار استفاده كرده ام ولي ميخواستم از اساتيد محترم درخواست كنم كه اگه ميشه يه راه حل بهتر كه هميشه درست جواب ميده رو به من بگن.

داده هايي كه من در دست دارم به اين صورت هست: روز - ماه - سال

با تشكر :oops:
 

donvito

New Member
شما بگو چه جوری تاریخ رو می گیری تا بهتر بشه راهنمایی کرد.
 

sama_sally

Member
اگه برات امکان داره بیشتر توضیح بده و کد رو هم بذار
شاید تونستیم کمکت کنیم
 

sunrise

Member
شما بگو چه جوری تاریخ رو می گیری تا بهتر بشه راهنمایی کرد.
اگه برات امکان داره بیشتر توضیح بده و کد رو هم بذار
شاید تونستیم کمکت کنیم
شما مثلاً فرض كنيد من تاريخ رو از داخل بانك اطلاعاتي دريافت مي كنم و در متغير $crtdate اون رو ذخيره مي كنم. فرض كنيد تاريخ هم به اين صورت هست: 30-09-2005 و مثلاً باز تاريخ روز رو هم در يه متغير ديگه با نام $datetoday به همين صورتي كه گفتم ذخيره كردم. حالا ميخوام كاري كنم كه اگه تاريخ ذخيره شده در $crtdate شبهه همون تاريخ ذخيره شده در $datetoday بود تاريخ رو بنويسه مثلاً امروز (كه اين قسمت رو من مشكلي ندارم) اما مي خواستم بدونم چطوري بايد ديروز بودن تاريخ ذخيره شده در $crtdate رو تشخيص داده بشه و بگه كه ديروز ، البته من اين كار رو هم با يه روش ساده انجام دادم يعني با بررسي روز و ماه و همچنين سال ولي در صورتي كه مثلاً تاريخ ذخيره شده در $crtdate مربوط به روز آخر ماه مثلاً نهم هست وقتي كه ميخواد تشخيص بده تاريخ مربوط به ديروز هست مشكل ايجاد ميشه و اين طبيعي هم هست چون اون كدي كه من نوشتم طوري تعيين كردم كه در صورتي كه سال و ماه شبيهه تاريخ روز بود و همچنين روز يكي كمتر از تاريخ روز بود بصورت ديروز نشون بده اما وقتي كه وارد ماه جديد ميشه اين كار انجام نميشه ...

اميدوارم منظور من رو متوجه شده باشيد ...
 

I.NoBody

Active Member
خوب چون فرمت تاريخ شما مناسب هست، شما مي توني يه Sort توي سال و ماه و روز ، بطور جداگانه انجام بدي و بعدش به راحتي تشخيص بدي.
کار ساده اي هست. مطمئن باش مي توني انجامش بدي. يعني به هر کدوم از عناصر سال و ماه و روز به چشم يک عدد نگاه کن.

برات کدشو نوشتم :
من فرض مي کنم تو دو تا تاريخ داري :
کد:
$d1="2003-04-12";
$d2="2005-10-08";
حال بايد مقادير سال و ماه و روز رو براي هر کدوم جدا کني :
کد:
$pos=strpos($d1,"-");
$i=0;
while($pos){
 $date1[$i]=substr($d1,0,$pos);
 $d1=substr($d1,$pos+1);
 $i++;
 $pos=strpos($d1,"-");
}
$date1[$i]=$d1;
//======================== 
$pos=strpos($d2,"-");
$i=0;
while($pos){
 $date2[$i]=substr($d2,0,$pos);
 $d2=substr($d2,$pos+1);
 $i++;
 $pos=strpos($d2,"-");
}
$date2[$i]=$d2;
//========================
حالا شما هر کدوم از مقاديري رو که گفتم، توي يک آرايه داري و اگه اين کد رو بنويسي و فايلت رو اجرا کني، مي توني ببينيشون و با يک سري اعمال رياضي ساده ، مي توني به اون چيزي که مي خواي برسي
کد:
echo "<pre>";
print_r($date1);
echo "<br>";
print_r($date2);
 
آخرین ویرایش:

جدیدترین ارسال ها

بالا