در خواست تکمیل این تابع php

Alidesign

تازه وارد
21/2/13
81
0
6
24
سلام دوستان من یه کدی دارم که  تاریخ میلادی بهش میدی و میگه تا چند روز دیگه به اون تاریخ خواهید رسید
برای مثال تاریخ سرور 2015-7-20 باشه شما در این کد در جای مشخص شده تاریخ دیگه رو بزنید برای مثال 2015-7-25
کد نشون میده که 5 روز مانده
من میخوام این تاریخی که ما بهش دستی میدیم رو از دیتابیس بخونه
چند راهی رو تست کردم نشد تو کد فراخوان بدم اساتید خواهشا کد تکمیل شده این و در اختیار من بزان
ممنون

کد:
<?php$futureDate = '2015-07-25';$d = new DateTime($futureDate);echo $d->diff(new DateTime())->format('%a');?>
 
آخرین ویرایش توسط مدیر:

send

تازه وارد
24/6/10
89
0
6
31
Tehran
دوست عزیز چند راه رو تست کردید نشد ؟ 

یه جدول درست کن که 2 تا فیلد داشته باشه id و futureDate

بعد هم یه insert 

بعداً که کافیه مقدار ایدی رو رو دستور select زیر بدی 

نمونه کد  : 

کد:
<?php $result = mysql_query("SELECT * FROM *نام جدول* where id='' limit 1 ");while ($row = mysql_fetch_array($result)){	$futureDate= $row['futureDate'];}?>
 

Alidesign

تازه وارد
21/2/13
81
0
6
24
دقیقا با همین راه تست کردم که نشد

 

hannanstd.ir

مدیر انجمن و توسعه دهنده ووکامرس پارسی
27/9/12
3,478
3
38
لنگرود
عنوان تاپیک اصن مناسب نیست . باید عنوان میزدید مثلا فراخونی یک مقدار از دیتابیس و مشابه آن .

اما چند نکته تکمیلی : کد بالا فقط برای php 5.3 به بالا کار میکنه ....

در ضمن اگه میخواید + یا - هم نشون بده بهتره از کد زیر استفاده کنید . چون مثلا اگه تاریخ سرور 2015-7-20 باشه و 2015-7-15 باز هم مثل 25 مقدار 5 رو نشون میده که اینطوری به صورت +5 یا -5 نشون میده .

کد:
echo $d->diff(new DateTime())->format('%R%a');
 

Alidesign

تازه وارد
21/2/13
81
0
6
24
داداش حل شد دمت گرم یه کوچولو اشتب نوشته بودم کداشو

 

Alidesign

تازه وارد
21/2/13
81
0
6
24
دوستان اگه بخواییم این به صورت شمسی کار کنه باید چیکار کنم؟

 

send

تازه وارد
24/6/10
89
0
6
31
Tehran
از تابع زیر استفاده نمایید . 



 
آخرین ویرایش توسط مدیر:

hannanstd.ir

مدیر انجمن و توسعه دهنده ووکامرس پارسی
27/9/12
3,478
3
38
لنگرود
<?php$shamsiDate = '1394-06-01';$shamsiDate = explode( '-' , $shamsiDate );$futureDate = jalali_to_gregorian($shamsiDate[0],$shamsiDate[1],$shamsiDate[2],'-');$d = new DateTime($futureDate);echo $d->diff(new DateTime())->format('%a');function jalali_to_gregorian($j_y,$j_m,$j_d,$mod=''){ $d_4=($j_y+1)%4; $doy_j=($j_m<7)?(($j_m-1)*31)+$j_d:(($j_m-7)*30)+$j_d+186; $d_33=(int)((($j_y-55)%132)*.0305); $a=($d_33!=3 and $d_4<=$d_33)?287:286; $b=(($d_33==1 or $d_33==2) and ($d_33==$d_4 or $d_4==1))?78:(($d_33==3 and $d_4==0)?80:79); if((int)(($j_y-19)/63)==20){$a--;$b++;} if($doy_j<=$a){ $gy=$j_y+621; $gd=$doy_j+$b; }else{ $gy=$j_y+622; $gd=$doy_j-$a; } foreach(array(0,31,($gy%4==0)?29:28,31,30,31,30,31,31,30,31,30,31) as $gm=>$v){ if($gd<=$v)break; $gd-=$v; } return($mod=='')?array($gy,$gm,$gd):$gy.$mod.$gm.$mod.$gd;}بجای تاریخ شمسی گذاشته شده تاریخ مد نظر رو بذارید . به صورت شمسی .

 
آخرین ویرایش توسط مدیر:

Alidesign

تازه وارد
21/2/13
81
0
6
24
داداش دقیقا همونی که میخواستم فقط یه مشکلی داره امروز 10 من تاریخ 21 رو بهش دادم

باید بزنه 11 میزنه 10 تنها مشکلش همینه

وگرنه عالیه

کد:
<?php$shamsiDate = '1394-06-21';$shamsiDate = explode( '-' , $shamsiDate );$futureDate = jalali_to_gregorian($shamsiDate[0],$shamsiDate[1],$shamsiDate[2],'-');$d = new DateTime($futureDate);echo $d->diff(new DateTime())->format('%a');function jalali_to_gregorian($j_y,$j_m,$j_d,$mod=''){ $d_4=($j_y+1)%4; $doy_j=($j_m<7)?(($j_m-1)*31)+$j_d:(($j_m-7)*30)+$j_d+186; $d_33=(int)((($j_y-55)%132)*.0305); $a=($d_33!=3 and $d_4<=$d_33)?287:286; $b=(($d_33==1 or $d_33==2) and ($d_33==$d_4 or $d_4==1))?78:(($d_33==3 and $d_4==0)?80:79); if((int)(($j_y-19)/63)==20){$a--;$b++;} if($doy_j<=$a){  $gy=$j_y+621; $gd=$doy_j+$b; }else{  $gy=$j_y+622; $gd=$doy_j-$a; } foreach(array(0,31,($gy%4==0)?29:28,31,30,31,30,31,31,30,31,30,31) as $gm=>$v){  if($gd<=$v)break;  $gd-=$v; } return($mod=='')?array($gy,$gm,$gd):$gy.$mod.$gm.$mod.$gd;}?>
 
آخرین ویرایش توسط مدیر:

send

تازه وارد
24/6/10
89
0
6
31
Tehran
میلادی به شمسی

gregorian_to_jalali(2011,2,11,' / ');// خروجی: 1389 / 11 / 22تابع شمسی به میلادی

jalali_to_gregorian(1389,11,22,' - ');// خروجی: 2011 - 2 - 11فایل پیوست رو دانلود و کنار فایل که این کد هست قرار بده و دستور زیر رو هم بالا همین فایلت قرار بده

کد:
include_once("jdf.php");
 
آخرین ویرایش توسط مدیر:

hannanstd.ir

مدیر انجمن و توسعه دهنده ووکامرس پارسی
27/9/12
3,478
3
38
لنگرود
داداش دقیقا همونی که میخواستم فقط یه مشکلی داره امروز 10 من تاریخ 21 رو بهش دادم

باید بزنه 11 میزنه 10 تنها مشکلش همینه

وگرنه عالیه
کد:
echo ($d->diff(new DateTime())->format('%a') + 1);
 
آخرین ویرایش توسط مدیر: